Search code examples
objective-cswiftnsdata

Swift NSData Initialiser


I im tring to implement this method from a Obj-C library.

func bleDidReceiveData(data: UnsafeMutablePointer<UInt8>, length: Int32) {
    var d = NSData(bytes: data as [UInt8], length: length)
}

However when i tried initializing NSData, it gave me this error

Cannot find an initialiser for type NSData that accepts an argument of type (bytes:[UInt8],length:int32)

In Obj-C it is being done this way

NSData *d = [NSData dataWithBytes:data length:length];

Solution

  • func bleDidReceiveData(data: UnsafeMutablePointer<UInt8>, length: Int32) {
        var d = NSData(bytes: UnsafeMutablePointer<Void>(data), length: Int(length))
    }