We had this code snippet with the previous version of 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() } }
However, now this gives us the following error:
Cannot convert value of type 'inout Unmanaged?' (aka 'inout Optional>') to the expected argument type 'UnsafeMutablePointer' (aka 'UnsafeMutablePointer>')
I lost a little how to fix it. I assume that I need to allocate some memory, make UnsafeMutablePointer for it, and then pass it to SecItemCopyMatching?
I tried this:
let sizeOfKey = 32 var store = NSMutableData(capacity: sizeOfKey)! let status = SecItemCopyMatching(keyChainQuery, store.bytes)
But it gave me:
It is impossible to convert a value of type UnsafePointer (aka 'UnsafePointer <()>') to the expected argument type "UnsafeMutablePointer" (aka Error "UnsafeMutablePointer>")
Any idea?
swift swift2 keychain
Toad
source share