草庐IT

swift - 如何从可选的 Int 初始化可选的 UInt?

我想将可选的Int转换为可选的UInt:letoptionalNumber:Int?//laterincodeletoptionalPositiveNumber=UInt(optionalNumber)给出错误:Cannotinvokeinitializerfortype'Uint'withanargumentlistoftype(Int?)我可以通过为UInt创建以下扩展来解决这个问题:extensionUInt{init?(_number:Int?){ifletnumber=number{self=UInt(number)}}}有没有一种方法可以将Int?转换为UInt?而无需使用

arrays - Swift - 将 UInt8 字节转换为位数组

我正在尝试解码protobuff编码的消息,因此我需要将protobuff消息中的第一个字节(key)转换为位,以便找到字段编号。如何将UInt8(字节)转换为位数组?伪代码privatefuncfindFieldNum(frombyte:UInt8)->Int{//Byteis00011010varfieldNumBits=byte[1]++byte[2]++byte[3]++byte[4]//concatentatesbitstoget0011getFieldNum(from:fieldNumBits)//Converts0011tofieldnumber,2^1+2^0=3}我看

ios - '不安全指针<UInt8 >' is not convertible to ' 不安全指针<_>'

我正在做tripleDES加密和解密。收到此错误:UnsafePointer'isnotconvertibleto'UnsafePointer我收到错误的代码是:letkeyString="25d1d4cb0a08403e2acbcbe0"letkeyData=keyString.data(using:.utf8)!letmessage=passletdata=message.data(using:.utf8)!letcryptData=NSMutableData(length:Int(data.count)+kCCBlockSize3DES)!letkeyLength=size_t(

stm32f103c8t6的外部中断

在单片机中存在着中断系统,这个系统的逻辑和功能在51单片机中已经有所了解。1.在32单片机中的内核有一个nvic里面存放许多优先级的设定,外接许多中断源,比如“exti、tim、adc、usart等”接入之后,nvic再通过中断优先级进行排队,再内接入cpu中进行处理,这样子大大减少了cpu的运算,提高了工作效率。2.其中里面的优先级又有响应优先级抢占优先级,响应的可以进行优先排队(插队),而抢占可以进行中断嵌套。3.exti外部中断,注意在支持的gpio口中,不能选择pin相同的来同时触发,比如pa1不能与pb1等等。4.在外部中断的结构中,有一个afio中断引脚选择,就是一个选择器,用来选

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

arrays - 将字符串转换为 UTF 8

我目前有一个字符串数组,我想将其转换为一个UInt8数组?所有的字符串都是UInt8,但我只能将其作为字符串检索。有什么想法吗?letstringValues="[185,221,199,111,152,137,41,137,223,66,75,132]"我将数组中的每个项目拆分成单独的部分,我只是不知道如何将字符串转换为UInt8。谢谢 最佳答案 这个有效:varstringValues="[185,221,199,111,152,137,41,137,223,66,75,132]"stringValues=stringValue

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已经为您完成了很多跑腿工作,那么为什么还要自己再做一次呢?