I\'m trying to create an NSData var from an array of bytes.
In Obj-C I might have done this:
NSData *endMarker = [[NSData al
Swift 3 extension
extension Data {
init(fromArray values: [T]) {
var values = values
self.init(buffer: UnsafeBufferPointer(start: &values, count: values.count))
}
func toArray(type: T.Type) -> [T] {
return self.withUnsafeBytes {
[T](UnsafeBufferPointer(start: $0, count: self.count/MemoryLayout.stride))
}
}
}
Usage
let bytes:[UInt8] = [0x00, 0xf4, 0x7c]
let data = Data(fromArray: someBytes)
print(data as NSData)
let bytes = data.toArray(type: UInt8.self)
print(bytes)