我有一个大问题......我计划编写一个处理用户地址簿及其地址的应用程序。一切都很好 - 除了我无法确定 addesse 的类型是“工作”、“家庭”还是“其他”。
有人知道如何获得家庭、工作和其他的标签吗?
提前致谢
鲍里斯
这是我目前正在使用的功能:
+ (void)testing {
//Get the addressbook
ABAddressBookRef _addressBookRef = ABAddressBookCreate ();
//Fetch all contacts
NSArray* allPeople = (NSArray *)ABAddressBookCopyArrayOfAllPeople(_addressBookRef);
//Walk the contacts
for (id record in allPeople) {
//Get the contact´s id
NSInteger recordId = ABRecordGetRecordID((ABRecordRef)record);
//Get the contact´s name and company
NSString* recordName = (NSString *)ABRecordCopyCompositeName((ABRecordRef)record);
NSString* recordCompany = (NSString *)ABRecordCopyValue((ABRecordRef)record, kABPersonOrganizationProperty);
//Get the contact´s addresses
CFTypeRef adressesReference = ABRecordCopyValue((ABRecordRef)record, kABPersonAddressProperty);
NSArray *adressesArray = (NSArray *)ABMultiValueCopyArrayOfAllValues(adressesReference);
CFRelease(adressesReference);
NSLog(@"ID: %d", recordId);
NSLog(@"Name: %@", recordName);
NSLog(@"Firma: %@", recordCompany);
for (NSString *adress in adressesArray) {
NSLog(@"Adresse: %@", adress);
}
[adressesArray release];
}
CFRelease(_addressBookRef);
[allPeople release];
NSLog(@"\n");
}
这是日志输出:
ID:1 姓名:第一个用户 Firma:(null)地址:{ City = Reutlingen; 国家=德国;国家代码 = de; Street =“某条街道”;邮编 = 23456;}
地址:{ 城市 = 罗伊特林根;国家=德国;国家代码 = de; 状态 = BW;Street = "2 号街道"; 邮编 = 98765;}
ID:2姓名:第二联系人Firma:Firma Adresse:{ Country =“United States”;国家代码 = 我们;街道 = 测试;}