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