나는 AddressBook에 대해 몇 가지 테스트를하고 있는데, 내가 원하는 데이터를 얻을 수는 있지만 어떻게 전달되는지 궁금하다. 특히 CFDictionaryRef. 이것을 NSDictionary로 캐스팅하고 콘솔에 로그 할 때 나는 단지 키 = 값 쌍이 아닌 문자열 값을 얻습니다. 모든 키를 기록하려고하면 테스트 앱이 중단됩니다. 당신은 ABMultiValueCopyValueAtIndex()
은 CFDictionaryRef
을 반환 가정하고iOS : 누군가 CFDictionaryRef를 설명해 주시겠습니까?
if ([contactName isEqualToString:ownerName]) {
//get reference to their email addresses
ABMultiValueRef contactEmails = ABRecordCopyValue(thisPerson, kABPersonEmailProperty);
//loop
for (NSUInteger e = 0; e < ABMultiValueGetCount(contactEmails); e++){
CFDictionaryRef thisPersonCFEmailDict = ABMultiValueCopyValueAtIndex(contactEmails, e);
NSDictionary* thisPersonEmailDict = (__bridge NSDictionary*)thisPersonCFEmailDict;
NSLog(@"%@", [thisPersonEmailDict allKeys]);
}
}
'ABMultiValueCopyValueAtIndex()'가'CFDictionaryRef'를 반환한다고 생각하게하는 이유는 무엇입니까? 'CFTypeRef'를 반환하는 것으로 문서화되어 있습니다. 이것은'id'의 CoreFoundation에 해당합니다. –
아무것도 아니야, 나는 이것의 학습 곡선 단계에 있고 내가 할 수있는 것을보고있다. 나는 그 주제에 관한 두 권의 게시물을보고 무엇이 효과가 있었는지 알기 위해 미리보기를 뽑았다. 대답 해 주셔서 고맙습니다. 그게 내 혼란을 해결해줍니다. – PruitIgoe