iOS 6で連絡先のアドレスを検索しようとすると、非常に奇妙な問題が発生します。連絡先に「アドレス」というラベルの付いたアドレスがない限り、検索できません。「職場」または「自宅」で入力した住所は表示されません。
この問題を理解するために、連絡先から個人の記録を取得し、保存されているすべての値をダンプすることは可能ですか?これが、これらの「自宅」と「職場」の住所がどこにあるかを見つけるのに役立つことを願っています。
これまでの私のコードは次のとおりです。
- (void)setAddressFromPerson:(ABRecordRef)person
{
ABMultiValueRef addresses = ABRecordCopyValue(person, kABPersonAddressProperty);
for (CFIndex j = 0; j<ABMultiValueGetCount(addresses);j++){
CFDictionaryRef dict = ABMultiValueCopyValueAtIndex(addresses, j);
CFStringRef typeTmp = ABMultiValueCopyLabelAtIndex(addresses, j);
CFStringRef labeltype = ABAddressBookCopyLocalizedLabel(typeTmp);
NSString *street = [(NSString *)CFDictionaryGetValue(dict, kABPersonAddressStreetKey) copy];
NSString *city = [(NSString *)CFDictionaryGetValue(dict, kABPersonAddressCityKey) copy];
NSString *state = [(NSString *)CFDictionaryGetValue(dict, kABPersonAddressStateKey) copy];
NSString *zip = [(NSString *)CFDictionaryGetValue(dict, kABPersonAddressZIPKey) copy];
NSString *country = [(NSString *)CFDictionaryGetValue(dict, kABPersonAddressCountryKey) copy];
NSLog(street);
}