我有以下用Swift 2.2编写的代码:
let keyData = NSMutableData(length: 64)!
SecRandomCopyBytes(kSecRandomDefault, 64, UnsafeMutablePointer<UInt8>(keyData.mutableBytes))
XCode 8突出显示第二行并声称
无法使用类型为((UnsafeMutableRawPointer)'的参数列表来调用类型'UnsafeMutablePointer <_>'的初始化程序
尽管我很欣赏XCode告诉我的内容,但我不太了解如何将UnsafeMutableRawPointer更改为可接受的。
有谁知道如何将此代码转换为Swift 3?
我建议您使用Data
而不是NSData
Swift 3。
var keyData = Data(count: 64)
let result = keyData.withUnsafeMutableBytes {mutableBytes in
SecRandomCopyBytes(kSecRandomDefault, keyData.count, mutableBytes)
}
withUnsafeMutableBytes(_:)
声明为通用方法,因此在诸如此类的简单情况下,无需指定元素类型就可以使用它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句