相关疑难解决方法(0)

SecItemCopyMatching的swift 2.0 keychain类型错误

我们使用以前版本的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>')错误

有人有想法吗?

keychain swift swift2

7
推荐指数
1
解决办法
5585
查看次数

标签 统计

keychain ×1

swift ×1

swift2 ×1