В ARC возникают проблемы со следующим приведением:
NSDictionary *attributes;
SecItemCopyMatching((__bridge CFDictionaryRef)keychainItemQuery, (CFTypeRef *)&attributes);
Ошибка: приведение косвенного указателя к указателю Objective-C на 'CFTypeRef ' (также известное как 'const void * ') запрещено с помощью ARC
Поскольку мы делали что-то похожее и использовали приведенный выше пример, мы столкнулись с другой проблемой:
CFDataRef resultRef;
OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)searchDictionary,
(CFTypeRef *)&resultRef);
NSData* result = (__bridge_transfer NSData*)resultRef;
Это приведет к EXEC_BAD_ACCESS, потому что resultRef не имеет никакого адреса и указывает куда-то на память.
CFDataRef resultRef = nil;
Это исправит ошибку.