UnsafeMutablePointer <CFTypeRef> в Swift 3

Я пытаюсь позвонитьSecItemCopyMatching в моем служебном классе цепочки для ключей, чтобы получить данные из цепочки для ключей, все же я сталкиваюсь с проблемой с получениемresult аргумент,UnsafeMutablePointer<CFTypeRef?>.

Первоначальное утверждение (в Swift 2, до перехода на Swift 3) было

// query is a dictionary of [String : AnyObject]

var result: Data?
let status = withUnsafeMutablePointer(to: &result) {
    SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
}

Но в Swift 3 вам теперь необходимо позвонить.withMemoryRebound для того, чтобы просмотреть память. Основы того, что Xcode говорит вам делать, я пробовал это

var result: Data?
let status = withUnsafeMutablePointer(to: &result){
    $0.withMemoryRebound(to: Data.self, capacity: 1){
        SecItemCopyMatching(query as CFDictionary, UnsafePointer($0))
    }
}

Тем не менее, делая это, я получаю ошибку

Невозможно преобразовать значение типа 'UnsafePointer<_>«к ожидаемому типу аргумента»UnsafeMutablePointer<CFTypeRef?>?'

Итак, я попытался с помощьюCFTypeRef вместоData

var result: CFTypeRef?
let status = withUnsafeMutablePointer(to: &result){
    $0.withMemoryRebound(to: CFTypeRef.self, capacity: 1){
        SecItemCopyMatching(query as CFDictionary, UnsafePointer($0))
    }
}

ЗаменаUnsafePointer($0) с просто$0 приводит к тому же сообщению об ошибке.

Как я могу получитьUnsafeMutablePointer<CFTypeRef?> для получения данных из цепочки для ключей?

Ответы на вопрос(2)

Ваш ответ на вопрос