草庐IT

Swift 4 JSONEncoder 不能对 String 或 Int 进行编码,但它们遵循 Codable 协议(protocol)

letencoder=JSONEncoder()do{letencodData=tryencoder.encode("teststring")//sameasInttypeprint(encodData)//nil}catchleterr{print(err.localizedDescription)//Thedatacouldn’tbewrittenbecauseitisn’tinthecorrectformat.}如何编码这些类型值 最佳答案 顶级(根)JSON对象只能是数组或字典。例如:do{letencoder=JSONEn

swift - 试图在 Swift 中将类型 (BigEndian) 的 NSData 从 BlueTooth 转换为 Little Endian 类型的 Int

我正在尝试将通过蓝牙连接获得的NSData类型的6字节十六进制转换为适当的整数值。我知道这是BigEndian类型,我需要转换为littleEndian。然而,每次我尝试转换它时,我都可以提取正确的数据,但结果看起来不对,请参见下面的Playground代码:varnewdata=NSData(bytes:[0x26,0x01,0x45,0x01,0x04,0x5e,]as[UInt8],length:6)//vartimeData=newdata.subdataWithRange(NSMakeRange(4,2))//varheelData=newdata.subdataWithRa

swift - 如何在 Swift 的结构中找到最高的 Int

假设我有一个结构,例如:structTestStruct{varname:Stringvarrank:Int}varfoo1=[TestStruct]()在foo1中找到最高rank值的最有效方法是什么?是否有可能在Struct上使用maxElement()? 最佳答案 是的,您可以使用Swift2:letmax=foo1.maxElement({$0.rank这是一个数据示例:structTestStruct{varname=""varrank:Intinit(rank:Int){self.rank=rank}}letfoo1=[

ios - NSError 代码检查 : Binary operator '==' cannot be applied to two Int operands

有人能告诉我我做错了什么吗?"error"是从CloudKit返回的NSError。iferror.code==Int(CKErrorCode.NetworkFailure){//dosomething}给我这个错误:Binaryoperator'=='cannotbeappliedtotwoIntoperands如果我这样做,效果很好:iferror.code==4{//dosomething}其中4是实际的错误代码。 最佳答案 这里的问题是Int没有将CKErrorCode作为输入的构造函数。如评论中所述,比较两个值的方法是:i

swift - 无法将类型 'NSRange'(又名 'NSRange')的值转换为预期参数类型 'Range<Index>'(又名 'Range<Int>')

我正在尝试实现EasyGameCenterlink但我得到这个错误:Cannotconvertvalueoftype'NSRange'(aka'NSRange')toexpectedargumenttype'Range'(aka'Range')代码如下:staticfuncunarchive(_data:Data!)->Packet{vararchivedPacket=ArchivedPacket(index:0,numberOfPackets:0,nameLength:0)//,dataLength:0letarchivedStructLength=sizeof(ArchivedPa

swift - Realm 过滤器不以 Int64 作为参数

我有一个ID为Int64的对象:classMyObject:Object{letid=RealmOptional();}我想使用此ID过滤MyObject的List:letobjectID=myObject.id.value;letobject=myObjectsList.filter("id=\(objectID)").first;//crash应用程序因错误而崩溃:'Invalidvalue',reason:'Expectedobjectoftypeintforproperty'id'onobjectoftype'MyObject',butreceived:Optional(2)'

swift - Random 不能用于实例 Int,Linux 上的行为

我想弄清楚如何使下面的代码在linux上编译。Darwinself.init(arc4random_uniform(UInt32(upperLimit)))的解决方案运行良好,但self.init(random()%upperLimit)生成以下错误。extensionInt{///Initializesanew`Int`instancewitharandomvaluebelowagiven`Int`.//////-Parameters:///-randomBelow:Theupperboundvaluetocreatearandomvaluewith.publicinit?(rand

objective-c - 我如何使用 Swift 调用需要类型 (int *) 参数的 Objective-C 方法?

现有的Objective-C方法具有以下签名:-(BOOL)barcodeSetScanBeep:(BOOL)enabledvolume:(int)volumebeepData:(int*)datalength:(int)lengtherror:(NSError**)error;请注意beepData:需要(int*)。可以通过传入C数组从Objective-C使用此方法:intbeepData[]={1200,100};如何从Swift调用相同的方法?我最好的尝试,letbeepData:[Int]=[1200,100],无法编译。 最佳答案

ios - 如何使用 Swift 将 NSArray 转换为 [Int]

我的问题很简单,letstring="1,2,3,4,5,6"因为我想在字符串中找到最大值,我想使用thisway中的方法,所以我需要这样做:letarray=string.componentsSeparatedByString(",")as[AnyObject]letnumArray=arrayas![Int]letmaxNum=numArray.reduce(Int.min,combine:{max($0,$1)})但是,“arrayas![Int]”会报错fatalerror:arraycannotbebridgedfromObjective-C如果是letnumArray=ar

java - 如何从 EditText 返回一个 int? (安卓)

基本上,我想要一个Android中的EditText,我可以在其中输入一个整数值。也许有比EditText更合适的对象? 最佳答案 现在,使用EditText。使用android:inputType="number"将其强制为数字。将结果字符串转换为整数(例如,Integer.parseInt(myEditText.getText().toString()))。将来,您可能会考虑使用NumberPicker小部件,一旦该小部件可用(预定在Honeycomb中)。 关于java-如何从Ed