2012-09-05 5 views
1

사람뿐만 아니라 그것을 해결하기 위해 친절하게도 될 것이다 environment.if 내가 ARC에서 타입 변환에 문제가 있습니다 원인 :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.

나에게 일을 ressolve 할 수있는 방법을 제안하십시오 .. 미리 감사드립니다.

답변

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