Это объявление API:
OSStatus SecItemCopyMatching (
CFDictionaryRef query,
CFTypeRef *result
);
result
является возвращаемым значением передачи по ссылке.
Объявите локальную переменную типа CFTypeRef
, вызовите функцию и передайте адрес указанного локального в соответствии с API, а затем выполните все специфические для ARC изменения после вызова функции.
<Ч />
Да - ошибка правильная. Вы не передаете CFTypeRef, вы передаете CFTypeRef *, а objc_unretainedPointer () понятия не имеет, что с этим делать.
Сделайте что-то вроде:
CFTypeRef localResult
SecItemCopyMatching(query, &localResult);
if (... no error ...) {
result = objc_retainedObject(localResult);
}