Toa*_*oad 7 keychain swift swift2
我们使用以前版本的Swift获得了这段代码
var retrievedData: NSData?
var extractedData: Unmanaged<AnyObject>? = nil
let status = SecItemCopyMatching(keyChainQuery, &extractedData)
if (status == errSecSuccess) {
if let validExtractedData = extractedData {
let opaque = validExtractedData.toOpaque()
retrievedData = Unmanaged<NSData>.fromOpaque(opaque).takeUnretainedValue()
}
}
Run Code Online (Sandbox Code Playgroud)
但是现在这给我们带来了以下错误:
无法转换'inout Unmanaged'类型的值?(又名'inout Optional>')预期参数类型'UnsafeMutablePointer'(又名'UnsafeMutablePointer>')
我对如何修复它有点迷茫.我假设我必须分配一些内存,为它创建一个UnsafeMutablePointer,然后将其提供给SecItemCopyMatching?
我试过这个:
let sizeOfKey = 32
var store = NSMutableData(capacity: sizeOfKey)!
let status = SecItemCopyMatching(keyChainQuery, store.bytes)
Run Code Online (Sandbox Code Playgroud)
但这给了我一个:
无法将'UnsafePointer'类型的值(又名'UnsafePointer <()>')转换为预期的参数类型'UnsafeMutablePointer'(又名'UnsafeMutablePointer>')错误
有人有想法吗?
rin*_*aro 26
看来,我们不再需要Unmanaged<>
工作了.
尝试:
var retrievedData: NSData?
var extractedData: AnyObject?
let status = SecItemCopyMatching(keyChainQuery, &extractedData)
if (status == errSecSuccess) {
retrievedData = extractedData as? NSData
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5585 次 |
最近记录: |