我正在尝试NSData var从字节数组创建一个。
NSData
var
在Obj-C中,我可能这样做:
NSData *endMarker = [[NSData alloc] initWithBytes:{ 0xFF, 0xD9 }, length: 2]
我无法弄清楚Swift中的等效功能。
NSData有一个带有bytes指针的初始化程序:init(bytes: UnsafeMutablePointer <Void>, length: Int)。一个UnsafePointer参数可以接受多种不同的东西,包括一个简单的斯威夫特阵列,所以你可以使用几乎相同的语法在Objective-C。传递数组时,需要确保将其标识为UInt8数组,否则Swift的类型推断将假定您要创建一个Int数组。
bytes
init(bytes: UnsafeMutablePointer <Void>, length: Int)
UnsafePointer
UInt8
Int
var endMarker = NSData(bytes: [0xFF, 0xD9] as [UInt8], length: 2)
您可以在Apple的与C API交互的文档中阅读有关不安全指针参数的更多信息。