【发布时间】:2015-09-03 14:10:30
【问题描述】:
我们在以前版本的 Swift 中使用了这个 sn-p 代码
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()
}
}
但是现在这给了我们以下错误:
无法转换“inout Unmanaged”类型的值? (又名 'inout Optional>') 到预期的参数类型 'UnsafeMutablePointer'(又名 'UnsafeMutablePointer>')
我对如何修复它有点迷茫。 我想我必须分配一些内存,为其创建一个 UnsafeMutablePointer,然后将其提供给 SecItemCopyMatching?
我试过这个:
let sizeOfKey = 32
var store = NSMutableData(capacity: sizeOfKey)!
let status = SecItemCopyMatching(keyChainQuery, store.bytes)
但这给了我一个:
无法转换“UnsafePointer”类型的值(又名 'UnsafePointer') 到预期的参数类型 'UnsafeMutablePointer'(又名 'UnsafeMutablePointer>') 错误
谁有想法?
【问题讨论】: