Objective c 在iOS6中记录为联系人存储的每个值
我遇到了一个非常奇怪的问题,我试图在iOS 6中查找联系人的地址,除非联系人的地址标有“address”,否则我找不到它。在“工作”或“家庭”下输入的任何地址都不会出现 为了试图解决这个问题,是否可以从联系人中获取个人记录并转储存储的每个值?我希望这能帮助我找到那些“家”和“工作”的地址 以下是我目前的代码:Objective c 在iOS6中记录为联系人存储的每个值,objective-c,ios,ios6,Objective C,Ios,Ios6,我遇到了一个非常奇怪的问题,我试图在iOS 6中查找联系人的地址,除非联系人的地址标有“address”,否则我找不到它。在“工作”或“家庭”下输入的任何地址都不会出现 为了试图解决这个问题,是否可以从联系人中获取个人记录并转储存储的每个值?我希望这能帮助我找到那些“家”和“工作”的地址 以下是我目前的代码: - (void)setAddressFromPerson:(ABRecordRef)person { ABMultiValueRef addresses = ABRecordCop
- (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);
}
-(void)setAddressFromPerson:(ABRecordRef)person
{
ABMultiValueRef addresses=ABRecordCopyValue(person,kABPersonAddressProperty);
对于(CFIndex j=0;j而言,可视化解析有点困难,但转储与ABPersonRef
相关的所有内容的最简单方法是获取其vCard表示:
ABPersonRef person = ...;
CFDataRef data = ABPersonCreateVCardRepresentationWithPeople(@[person]);
NSString *vcard = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
(假设从NSArray*
⇒ CFArrayRef
等)可视化解析有点困难,但转储与ABPersonRef
相关的所有内容的最简单方法是获取其vCard表示:
ABPersonRef person = ...;
CFDataRef data = ABPersonCreateVCardRepresentationWithPeople(@[person]);
NSString *vcard = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
(假设从NSArray*
⇒ <代码>CFArrayRef
等)谢谢Dave!原来该地址没有存储在主要联系人中,而它没有显示的原因是因为该地址存储在另一个同名联系人中。Unified info已打开,但我没有意识到。谢谢Dave!原来该地址没有存储在主要联系人中,而它没有显示的原因是该地址存储在另一个同名联系人中。统一信息已打开,但我没有意识到。