Ich muss die folgende API in einem Objective-C-Header in J2Objc aufrufen.Swift 2 bis 3 Konvertierung UnsafePointer <UInt8>
/**
* Create a new array of a specified length, setting the elements to the values in buf.
*/
class IOSByteArray: NSObject {
...
+ (instancetype)newArrayWithBytes:(const jbyte *)buf count:(NSUInteger)count;
...
}
In swift 2 konnte ich folgendes tun:
func myFunc() -> IOSByteArray {
return IOSByteArray.newArray(withBytes: UnsafePointer<UInt8>(data.bytes), count: UInt(data.count))
}
In swift 3, erhalte ich die Fehlermeldung:
"Cannot invoke initializer for type 'UnsafePointer<UInt8>' with an argument list of type '(Array<UInt8>)'"
Ich kann nicht herausfinden, wie das Äquivalent Anruf tätigen in swift 3.
Ich bekomme, dass https://swift.org/migration-guide/se-0107-migrate.html#automatic-migration-cases bietet eine Erklärung des warum und wie. Aber es ist ein wenig zu gelehrt für mich.
Hilfe!
Was die Art der Datenvariable ist nicht zu konvertieren zu bekommen verwenden verwenden sollten in myFunc()? –
Daten sind ein NSData-Objekt. – Navi
Bitte überprüfen Sie meine Antwort, Sie sollten Daten in Swift 3 anstelle von NSData –