我正在创建一个应用程序,我必须在其中获取iPhone的联系人并使用此应用程序调用该应用程序 .
CFErrorRef *error = NULL;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error);
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex numberOfPeople = ABAddressBookGetPersonCount(addressBook);
for(int i = 0; i < numberOfPeople; i++)
{
ABRecordRef person = CFArrayGetValueAtIndex( allPeople, i );
NSString *firstName = (NSString *)(ABRecordCopyValue(person, kABPersonFirstNameProperty));
[TempArray addObject:[NSString stringWithFormat:@"%@",firstName]];
ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty);
for (CFIndex i = 0; i < ABMultiValueGetCount(phoneNumbers); i++)
{
NSString *phoneNumber = (NSString *) ABMultiValueCopyValueAtIndex(phoneNumbers, i);
[PhoneNumbers addObject:phoneNumber];
}
}
我得到的数字和名称都在不同的数组中 . 但是有一些联系人名称有多个数字,所以Number Array中的组件更多 .
有没有什么可以同时将数字和联系人同步?有没有什么可以扫描该列表中的手机号码和固定电话号码?
此外,在获取联系人时,我们可以一次获取朋友的完整名称,而无需使用kABPersonFirstNameProperty或kABPersonLastNameProperty并附加?
有什么建议?
1 回答
我不得不工作一段时间才能完成这项工作 . 我必须使用 ABMultiValueCopyLabelAtIndex 来获得联系,并与
kABPersonPhoneMobileLabel
和kABPersonPhoneIPhoneLabel
进行比较,并以字典形式获取联系人详细信息 . 在此表单中,数字为 synchronized ,其名称为 .