I'm trying to create an NSData var from an array of bytes.
In Obj-C I might have done this:
NSData *endMarker = [[NSData alloc] initWithBytes:{ 0xFF, 0xD9 }, length: 2]
I can't figure out a working equivalent in Swift.
NSData has an initializer that takes a bytes pointer: init(bytes: UnsafeMutablePointer <Void>, length: Int). An UnsafePointer parameter can accept a variety of different things, including a simple Swift array, so you can use pretty much the same syntax as in Objective-C. When you pass the array, you need to make sure you identify it as a UInt8 array or Swift's type inference will assume you mean to create an Int array.
var endMarker = NSData(bytes: [0xFF, 0xD9] as [UInt8], length: 2) You can read more about unsafe pointer parameters in Apple's Interacting with C APIs documentation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With