Dan*_*iel 7 xcode ios swift xcode6
从Objective-C,我可以这样做:
NSMutableData *data = [NSMutableData dataWithLength:length];
int result = SecRandomCopyBytes(kSecRandomDefault, length, data.mutableBytes);
Run Code Online (Sandbox Code Playgroud)
在Swift中尝试这个时,我有以下内容:
let data = NSMutableData(length: Int(length))
let result = SecRandomCopyBytes(kSecRandomDefault, length, data.mutableBytes)
Run Code Online (Sandbox Code Playgroud)
但我得到这个编译器错误:
'Void' is not identical to 'UInt8'
Run Code Online (Sandbox Code Playgroud)
data.mutableBytes参数被拒绝,因为类型不匹配,但我无法弄清楚如何强制参数(我假设它在某种程度上是安全的).
Dan*_*iel 13
这似乎有效:
let data = NSMutableData(length: Int(length))
let result = SecRandomCopyBytes(kSecRandomDefault, length, UnsafeMutablePointer<UInt8>(data.mutableBytes))
Run Code Online (Sandbox Code Playgroud)
斯威夫特4:
let count: Int = <byteCount>
var data = Data(count: count)
let result = data.withUnsafeMutableBytes {
SecRandomCopyBytes(kSecRandomDefault, count, $0.baseAddress!)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2580 次 |
| 最近记录: |