原始数据打在斯威夫特我碰到的东西,我不明白。
NSData的有一个构造函数:
init(bytes: UnsafePointer<Void>, length: Int)
其中第一字节参数显然UnsafePointer类型。
然而,如果我通过[字节]对象给这个构造,不仅编译器不会抱怨,但它工作正常。
但是,如果我尝试施放[字节]来UnsafePointer,我失败了。
这是如何运作的?
例如(你可以尝试在操场):
let buffer: [Byte] = [0x00, 0xff]
let data = NSData(bytes: buffer, length: buffer.count) // no error
data.description
var pointer: UnsafePointer<Void>
// comment this line to avoid compiler error
pointer = buffer // error
我知道我可以做
UnsafePointer<Void>(buffer)
但我的问题是,什么是NSData的构造做含蓄,我没有做到这一点。