Swift NSMutableData附加Byte
发布时间:2020-12-14 04:25:14 所属栏目:百科 来源:网络整理
导读:我试图在 swift中将一个字节附加到NSMutable数据变量,我正在寻找一种更简单的方法.相关的 Objective-c代码将是: NSMutableData *data = [[NSMutableData alloc] init];uint8_t number = 255;[data appendBytes:number length:2]; 我没有发现我可以在Swift中
我试图在
swift中将一个字节附加到NSMutable数据变量,我正在寻找一种更简单的方法.相关的
Objective-c代码将是:
NSMutableData *data = [[NSMutableData alloc] init]; uint8_t number = 255; [data appendBytes:&number length:2]; 我没有发现我可以在Swift中做类似的事情.首先创建一个Byte值数组然后传入它的工作原理是什么.例如: var data = NSMutableData() let value: Byte = 0xFF let byte: [Byte] = [value] data.appendBytes(byte,length: 1) //this works too and is a little simpler data.appendBytes([value] as [Byte],length: 1) 有更简单的方法还是我错过了什么? doc指定它需要一个UnsafePointer,并且可以使用Word(Int的类型)创建UnsafePointer,因此以下工作 var word: Word = 255 data.appendBytes(UnsafePointer(bitPattern: word),length: 4) 但那不是我想要的 – 我想要一个Byte(UInt8).有什么建议? 解决方法
根据
Using Swift with Cocoa and Objective-C,当一个函数被声明为采用UnsafePointer参数时,它可以接受以下任何一个:
> nil,作为空指针传递 第三个子弹意味着你可以做到: var value: Byte = 0xFF // must be var,let will not work data.appendBytes(&value,length: 1) 注意:你必须在这里使用var而不是因为它必须是左值. 如果您发现自己经常添加单个字节,则可以扩展NSMutableData: extension NSMutableData { func appendByte(var b: Byte) { self.appendBytes(&b,length: 1) } } var data = NSMutableData() data.appendByte(255) 编辑(Swift 3): extension NSMutableData { func appendByte(_ i: Int8) { var i = i self.append(&i,length: 1) } } var data = NSMutableData() data.appendByte(255) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |