Wie rufe ich SecItemCopyMatching in Xcode 7 Beta 4 auf?

In früheren Versionen von Xcode 6 und 7 mit Swift würde diese Syntax funktionieren:

    var secureItemValue: Unmanaged<AnyObject>?

    let statusCode: OSStatus = SecItemCopyMatching(keychainItemQuery, &secureItemValue)
    if statusCode == errSecSuccess
    {
        let opaquePointer = secureItemValue?.toOpaque()

        let secureItemValueData = Unmanaged<NSData>.fromOpaque(opaquePointer!).takeUnretainedValue()

        // Use secureItemValueData...
    }

Die SecItemCopyMatching-Deklaration wurde jedoch in Xcode 7 Beta 4 geändert:

ALT:func SecItemCopyMatching(_ query: CFDictionary, _ result: UnsafeMutablePointer<AnyObject?>) -> OSStatus

NEU:func SecItemCopyMatching(_ query: CFDictionary!, _ result: UnsafeMutablePointer<Unmanaged<AnyObject>?>) -> OSStatus

... und jetzt stimmt der Typ "secureItemValue" nicht überein.

Der Mechanismus war vorher verwirrend, um das Ergebnis zu extrahieren, und ich hoffe, dass es mit der neuen Deklaration irgendwie einfacher ist, aber ich weiß nicht, wie ich den richtigen Typ für die Variable secureItemValue deklarieren und das Ergebnis extrahieren kann.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage