래퍼없이 KeyChain을 사용하려고합니다. 하지만 값을 읽을 때 코드가 다운됩니다.iOS KeyChain secItemAdd 충돌 발생
코드 :
CFDictionaryRef attributes = CFDictionaryCreate(NULL, keys, values, 5, NULL, NULL);
CFDataRef result;
OSStatus status = SecItemAdd(attributes, (CFTypeRef *)&result);
if (status == errSecSuccess) {
if (result && CFGetTypeID(result) == CFDataGetTypeID()) { //crashes here
NSLog(@"Data");
}
isSuccess = YES;
} else {
fprintf(stderr, "Error while inserting into keychain osstatus:%ld\n", status);
}
오류 : EXC_BAD_ACCESS 내가 잘못 뭐하는 거지
? 나는 SecItemAdd가 새롭게 항목을 추가 반환 할 수 있습니다 생각
편집 : 문서에서
const void *keys[] = {
kSecClass
, kSecAttrAccessible
, kSecAttrService
, kSecAttrAccount
, kSecValueData
};
const void *values[] = {
kSecClassGenericPassword
, kSecAttrAccessibleWhenUnlocked
, (__bridge CFStringRef)service
, (__bridge CFStringRef)account
, data //CFDataRef
};
"키"와 "값"으로 무엇을 선언? –
질문에 추가 – Haagenti