1

私はARC環境での型変換に問題があります.誰かがそれに対処するのに十分親切であれば:

このコード行を使用したとき:

OSStatus status = SecItemCopyMatching((CFDictionaryRef) CFBridgingRetain(attributeQuery), (CFTypeRef*)&attributeResult);

それから私はエラーが発生しています:

cast of an indirect pointer to an objective C pointer to 'CFTypeRef *' is disallowed with ARC.

これを解決する方法を教えてください..よろしくお願いします..

4

1 に答える 1

2

問題は、CFDictionary の代わりに attributeResult に NSDictionary を使用していることです。これを試してみるとうまくいくはずです(私は同じコードを使用しています):

CFMutableDictionaryRef outDictionary = NULL;
if (!SecItemCopyMatching((__bridge CFDictionaryRef)tempQuery, (CFTypeRef *)&outDictionary) == noErr)
...
} else {
  // load the saved data from Keychain.
  keychainItemData = [self secItemFormatToDictionary:(__bridge NSDictionary *)outDictionary];
}
if(outDictionary) CFRelease(outDictionary);
于 2012-09-05T11:28:36.587 に答える