NSData from Byte array in Swift

前端 未结 5 1541
闹比i
闹比i 2020-12-13 18:15

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

5条回答
  •  感动是毒
    2020-12-13 18:34

    NSData has an initializer that takes a bytes pointer: init(bytes: UnsafeMutablePointer , 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.

提交回复
热议问题