草庐IT

swift - 可选的 UInt8?给出 2 字节内存大小

UInt8内存大小为1个字节。但是当我把它设为可选值时,它给出了2个字节的大小。varserail:UInt8?=255print(MemoryLayout.size(ofValue:serail))//itgives2bytesize.varserail:UInt8=255print(MemoryLayout.size(ofValue:serail))//itgives1bytesize.如何为整数值获取恰好1字节的内存大小 最佳答案 在引擎盖下,一个可选的是一个枚举,看起来像这样:enumOptional{casesome(Wr

swift - 无法将调用结果类型 '_?' 转换为预期类型 '[UInt]'

self.mapper.identityIdsForQuickbloxUserIds(userIDs.map{($0as!NSNumber).unsignedLongValue},completion:{identityIdsMapping,errorinCannotconvertcallresulttype'_?'toexpectedtype'[UInt]'userIDs是NSSet这是一个函数:funcidentityIdsForQuickbloxUserIds(userIds:[UInt],completion:(identityIdsMapping:[UInt:String]?

objective-c - 如何在 Swift 中将 Objc-C NSUInteger[] = {0,1,2} 表示为 UnsafeMutablePointer<UInt>?

Objc-Cheader定义:-(int)printPDFAtPath:(NSString*)pdfPathpages:(NSUInteger[])indexeslength:(NSUInteger)lengthcopy:(int)nCopy;使用此函数的示例objc-C代码:NSUIntegerpageIndexes[]={0};printResult=[self.ptpprintPDFAtPath:selectedPDFFilePathpages:pageIndexeslength:lengthcopy:self.numberOfPaper];swift期望:funcprintPD

string - 如何在 Swift 中将字符串转换为 UInt32

lettemp:String="0xffeeffff"如何将上面的字符串转换为UInt32,因为我需要将它存储在只接受UInt32的位图中 最佳答案 从字符串中删除“0x”以将其转换为UInt32:lettemp="0xffeeffff"letresult=UInt32(String(temp.characters.dropFirst(2)),radix:16) 关于string-如何在Swift中将字符串转换为UInt32,我们在StackOverflow上找到一个类似的问题:

swift - 数据与 [UInt8]

Swift提供了Data和[UInt8]类型,它们做的事情非常相似。两者有什么区别?在设计新的API时,首选类型是什么? 最佳答案 [UInt8]本质上是一个字节数组,一个字节(我相信你知道)由8位组成。虽然NSData不仅仅是一个字节数组,但在深处它的底层结构是基于一个字节数组的。例如,您可以使用data.bytes等方法轻松地在它们之间进行转换。在设计API方面,我个人建议您使用NSData来设计它们,因为它比简单的字节数组提供了所有额外的功能。Apple已经为您完成了很多跑腿工作,那么为什么还要自己再做一次呢?

swift - 如何通过引用将 UnsafePointer<UInt8> 传递给 C API?

我写了一些Swift2.2代码来与OpenSSL交互CAPI,现在我正在尝试将其转换为Swift3。在swift2中letoctets=pkcs7_d_data(pkcs7_d_sign(receiptPKCS7).memory.contents)varptr=UnsafePointer(octets.memory.data)//nowpasspointerbyreferenceASN1_get_object(&ptr,&length,&type,&xclass,end-ptr)在Swift3中,我不得不做一些改变//useguardsoidonthavetoconstantlyunw

swift - 如何编写接受 Array<UInt8> 或 ArraySlice<UInt8> 的函数?

我想做的是通过编写如下函数来解析(部分)二进制协议(protocol)(MQTT):funcreadString(bytes:ArrayORArraySlice)->(string:String?,remainingBytes:ArraySlice?)我知道多态性,但我更希望有一个函数。我写了一个函数(使用泛型),它接受UnsignedIntegerType的Array或ArraySlice但我只想要UInt8。这似乎是一件简单的事情,但到目前为止我还没有想出一个好的解决方案...... 最佳答案 我会做的是,首先忘记返回类型,只考

ios - Swift 字典将 [UInt8] 作为值不起作用

我在Swift中创建了一个字典:vartype:Stringvarcontent:[UInt8]letdict=NSMutableDictionary()dict.setValue(type,forKey:"type")dict.setValue(content,forKey:"content")我收到一个错误:无法将类型[UInt8]的值转换为预期的参数类型“AnyObject?”,但是如果我将内容类型更改为[UInt],它将正常工作。为什么?事实上,我想像在Java中那样定义一个字节数组,所以我想使用[UInt8],有人可以帮助我吗? 最佳答案

ios - 将 UInt64 乘以 float

我在Playground上有以下代码:importFoundationvartest:UInt64=NSEC_PER_SEC//NSEC_PER_SECisaCUnsignedLongLongvartest2=2*test//thisworksvartest3=1.5*test//thisdoesn'twork我正在尝试获取一个Int64值,该值是用于dispatch_after的某些Float秒表示形式中的纳秒数。我已经尝试了几种类型转换的变体,但我似乎无法想出一种方法来获得这个结果。如有任何建议,我们将不胜感激!解决方案下面答案中的解决方案(感谢@shucao)是执行以下操作:va

ios - 错误 ("' ( )' is not identical to ' UInt 8'") 使用 Swift 中的写入函数将 NSData 字节写入 NSOutputStream

我正在尝试基于EricaSadun'smethod在Swift中构建异步文件下载.但我需要它来处理更大的文件,所以我找到了thisansweraboutusingaNSOutputStreaminsteadofNSData,有道理。但是,我无法让它工作。当我尝试将NSData字节(在我的NSURLConnectiondidReceiveData函数中)添加到NSOutputStream写入函数时出现此错误:'()'isnotidenticalto'UInt8'在这一行:bytesWritten=self.downloadStream.write(data.bytes,maxLength