스위프트에서 원시 데이터로 재생 나는 뭔가 이해가 가지 않는 것을 발견했습니다. 처음 바이트 매개 변수를 명확하게 UnsafePointer 유형입니다NSData (bytes : length :)는 [Byte]를 UnsafePointer <Void>으로 Swift에서 어떻게 변환합니까?
init(bytes: UnsafePointer<Void>, length: Int)
:
을 NSData 생성자가 있습니다.
그러나,이 생성자에 [Byte] 개체를 전달하면 컴파일러에서 불평하지 않을뿐만 아니라 제대로 작동합니다.
하지만 캐스팅하려고하면 [Byte] to UnsafePointer, 실패합니다.
어떻게 작동합니까?
예를 들어 (당신이 놀이터에서 그것을 시도 할 수 있습니다) : 나는
UnsafePointer<Void>(buffer)
을 수행 할 수 있습니다 알고
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
을하지만 내 질문은, 무엇을 NSData 생성자를 수행하는 것은 '나는 돈 것을 암시 할 그럴 필요가 없습니다.
"블로그 게시물"(https://developer.apple.com/swift/blog/?id=6)의 "포인터를 배열 매개 변수" – newacct