我在Swift 2.2中编写了以下代码:
let keyData = NSMutableData(length: 64)!
SecRandomCopyBytes(kSecRandomDefault, 64, UnsafeMutablePointer<UInt8>(keyData.mutableBytes))
Run Code Online (Sandbox Code Playgroud)
XCode 8强调了第二行并声称
无法使用类型为'(UnsafeMutableRawPointer)'的参数列表调用类型'UnsafeMutablePointer <_>'的初始值设定项
虽然我很欣赏XCode告诉我这一点,但我不太明白如何将UnsafeMutableRawPointer更改为可接受.
有谁知道如何将此代码转换为Swift 3?
OOP*_*Per 18
我建议你使用Data而不是NSData使用Swift 3.
var keyData = Data(count: 64)
let result = keyData.withUnsafeMutableBytes {mutableBytes in
SecRandomCopyBytes(kSecRandomDefault, keyData.count, mutableBytes)
}
Run Code Online (Sandbox Code Playgroud)
withUnsafeMutableBytes(_:) 声明为泛型方法,因此,在这种情况下,您可以在不指定元素类型的情况下使用它.
| 归档时间: |
|
| 查看次数: |
10989 次 |
| 最近记录: |