Sono bloccato convertendo il risultato della query Portachiavi utilizzando Swift.Interrogare il portachiavi iOS utilizzando Swift
La mia richiesta sembra funzionare:
let queryAttributes = NSDictionary(objects: [kSecClassGenericPassword, "MyService", "MyAccount", true],
forKeys: [kSecClass, kSecAttrService, kSecAttrAccount, kSecReturnData])
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
var dataTypeRef : Unmanaged<AnyObject>?
let status = SecItemCopyMatching(queryAttributes, &dataTypeRef);
let retrievedData : NSData = dataTypeRef!.takeRetainedValue() as NSData
*** ^^^^can't compile this line^^^^
})
Il mio problema è, il codice non viene compilato:
Bitcast requires both operands to be pointer or neither
%114 = bitcast %objc_object* %113 to %PSs9AnyObject_, !dbg !487
Bitcast requires both operands to be pointer or neither
%115 = bitcast %PSs9AnyObject_ %114 to i8*, !dbg !487
LLVM ERROR: Broken function found, compilation aborted!
non so come convertire Unmanaged<AnyObject>
-NSData
.
Qualche idea?
Sto anche cercando di ottenere l'accesso al portachiavi iOS e ho visto il tuo post. Non riesco a capire come ottenere creato il dizionario di query. Ho persino copiato la tua prima riga nella mia applicazione e dice la stessa cosa. "Impossibile trovare un sovraccarico per" init "che accetta gli argomenti forniti". Ho perso qualcosa? – Rob
Stesso problema con l'ultimo XCode del 3/11/2015 – a432511
Se stai cercando un semplice wrapper portachiavi drop-in, puoi provare questo: http://github.com/ashleymills/Keychain.swift –