2012-09-05 41 views
1

我有在ARC的类型转换问题environment.if人会是一种足以解决这一问题,以及:弧线型转换会导致编译器错误

当我用这行代码:

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

然后我有错误:

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

请给我建议任何方式ressolve日是.. 在此先感谢..

回答

2

问题是您正在使用一个NSDictionary for attributeResult而不是一个CFDictionary。尝试这个,它应该工作(我使用相同的代码):

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);