我试图从字节数组中创建一个NSData
var
.
在Obj-C中,我可能会这样做:
NSData *endMarker = [[NSData alloc] initWithBytes:{ 0xFF, 0xD9 }, length: 2]
我想不出在Swift中有什么等效的工作.
我试图从字节数组中创建一个NSData
var
.
在Obj-C中,我可能会这样做:
NSData *endMarker = [[NSData alloc] initWithBytes:{ 0xFF, 0xD9 }, length: 2]
我想不出在Swift中有什么等效的工作.
NSData
有一个初始值设定项,它接受bytes
指针:init(bytes: UnsafeMutablePointer <Void>, length: Int)
.UnsafePointer
参数可以接受多种不同的内容,包括一个简单的Swift数组,因此可以使用与Objective-C中几乎相同的语法.当传递数组时,需要确保将其标识为UInt8
数组,否则Swift的类型推断将假定您要创建Int
array.
var endMarker = NSData(bytes: [0xFF, 0xD9] as [UInt8], length: 2)
你可以在Apple的Interacting with C APIs文档中阅读更多关于不安全指针参数的信息.