草庐IT

uint_least

全部标签

swift - 如何从 AnyObject 向下转换为 UInt16?

我正在尝试将一些值传递给接受UInt16值作为参数的函数。我通过Parse查询数据库来接收值。查询返回一个AnyObject类型的对象(我知道它是一个整数)!为了将它传递给函数,我必须将它转换为UInt16。不过Swift好像不喜欢这样,说UInt16不符合AnyObject协议(protocol)。我可以向下转换AnyObject类型!成功转换为Int,但我无法将该Int转换为UInt16。有人知道怎么解决吗? 最佳答案 您可以使用as类型转换运算符将AnyObject转换为Int,但是要向下转换为不同的数字类型,您需要使用目标类

Swift:为什么 UInt.max == -1

如标题所述,lldb将UInt.max的值报告为-1的UInt,这似乎非常不合逻辑。考虑到letuint:UInt=-1甚至都无法编译,这怎么可能呢?我看不出有任何方法可以在运行时使UInt为负值,因为如果给定负值,初始化程序将崩溃。我想知道UInt的实际最大值。 最佳答案 -1的Int值和UInt.max的UInt值在内存。如果你这样做,你可以看到:leti=Int(bitPattern:UInt.max)//i==-1反方向:ifUInt(bitPattern:Int(-1))==UInt.max{print("same")}输

xcode - 找不到类型为 'String' 的初始值设定项,它接受类型为“(格式 : String, 参数:UInt32

我在Xcode6.3(6D570)中创建了一个Playground并输入以下代码:importUIKitvarrandum_num=arc4random_uniform(13)+1String(format:"card%i",arguments:randum_num)我得到了这个错误:cannotfindaninitializerfortype'String'thatacceptsanargumentlistoftype'(format:String,argument:UInt32抱歉,我是Swift的新手,感谢您的任何建议!附言我正在学习本教程:link

ios - Swift 将 Int [int8] 的有符号数组转换为 Int [UInt8] 的无符号数组

如何将[Int8]的有符号数组转换为[UInt8]的无符号数组。letarryData:[Int8]=[-108,11,-107,-14,35,-57,-116,118,54,91,12,67,21,29,-44,111]我只想将上面的这个转换成无符号[UInt8]数组。如何swift实现这一目标。?提前致谢。 最佳答案 如果您打算将带符号的8位整数转换为无符号的具有相同的位表示(例如-1->255):letintArray:[Int8]=[0,1,2,127,-1,-2,-128]letuintArray=intArray.map

ios - 无法为类型 UnsafeMutablePointer<UInt8> 调用初始值设定项

我正在尝试将我的字符串转换为SHA256哈希,但出现下一个错误:Cannotinvokeinitializerfortype'UnsafeMutablePointer'withanargumentlistoftype'(UnsafeMutableRawPointer)'这是我的职责:funcSHA256(data:String)->Data{varhash=NSMutableData(length:Int(CC_SHA256_DIGEST_LENGTH))!ifletnewData:Data=data.data(using:.utf8){letbytes=newData.withUns

swift - 将 nil 作为 UnsafePointer<UInt8> 传递

在Swift2.2中,我能够传入nil作为需要UnsafePointer的函数的有效参数.在Swift3中,我不能再这样做了:funcmyFuncThatTakesAPointer(buffer:UnsafePointer,length:Int){/****/}myFuncThatTakesAPointer(buffer:nil,length:0)Playgroundexecutionfailed:error:Xcode8Playground-iOS.playground:62:33:error:nilisnotcompatiblewithexpectedargumenttype'Un

swift - 如何在 Swift 中将 [Int8] 转换为 [UInt8]

我有一个只包含字符的缓冲区letbuffer:[Int8]=....然后我需要将其传递给函数process,该函数将[UInt8]作为参数。funcprocess(buffer:[UInt8]){//somecode}传递[Int8]缓冲区以转换为[Int8]的最佳方法是什么?我知道下面的代码可以工作,但在这种情况下,缓冲区只包含一堆字符,没有必要使用像map这样的函数。process(buffer.map{xinUInt8(x)})//OKprocess([UInt8](buffer))//errorprocess(bufferas![UInt8])//error我正在使用Xcode

swift - swift 将内存设置为 UnsafeMutablePointer<UInt8>

我遇到了类型为UnsafeMutablePointer的变量的挑战.我有这个工作代码来分配所有UInt8并将其设置为零Swift中的数组。varbits=UnsafeMutablePointer(calloc(width*height,8))问题是我想在不使用calloc方法的情况下完成它。我有这段代码来分配数组varbits=UnsafeMutablePointer.alloc(width*height)但我找不到将所有内存设置为零的方法。我知道我可以这样做,但我认为这不是最好的方法。forindexin0.. 最佳答案 正如@m

swift - Swift 中有比 u_long/UInt64 容量更大的数字类型吗?

在Swift中是否有比u_long或UInt64容量更大的类型?我有一个函数,它使用非常大的整数来识别28位信用卡号:funcmyFunc(number:/*Whattoputhere?*/){//body}什么类型合适?number应该被视为字符串吗? 最佳答案 信用卡号不是有意义的数学意义上的数字。它是一个数字序列,CC应该被视为文本,就像电话号码一样。使用固定长度整数值的一个直接问题是代码无法同时检测到leading。和尾随零来自“没有更多数字存在”。使用字符串或特定(自定义)类型表示CC编号,可能在内部使用字符串。数字的长度

arrays - Swift 位数组到字节数组(UInt8 数组)

我有带位的数组:varbits:[Bit]以及如何将其转换为字节数组:varbytes:[UInt8]例如,我有280位,我应该有35个UInt8字节数组。我可以想到解决方案,我采用8位并检查第一个是否为真,第二个是否为真等等并对结果求和并具有值(value)。我会为我的位数组中的每8位执行此操作。但我认为这将是一个糟糕的解决方案(它可以工作,但需要进行不必要的计算)。我认为可能会有更快的解决方案,但我在这方面真的很糟糕,所以我正在寻求帮助。谢谢 最佳答案 一个可能的解决方案是枚举数组中的所有位并为所有“一”位设置UInt8中的相应