Ios 并非来自通讯簿的所有联系人号码
我在通讯簿中遇到了一个问题,我从联系人中保存了两个电话号码,一个是家里的,另一个是办公室的,我在应用程序联系人列表中只得到一个号码。如果我想得到这两个号码,我想做什么Ios 并非来自通讯簿的所有联系人号码,ios,iphone,ios7,ios8,addressbook,Ios,Iphone,Ios7,Ios8,Addressbook,我在通讯簿中遇到了一个问题,我从联系人中保存了两个电话号码,一个是家里的,另一个是办公室的,我在应用程序联系人列表中只得到一个号码。如果我想得到这两个号码,我想做什么 使用此代码,您将从通讯簿中获取所有联系人姓名。我希望它将对您有所帮助。 With this code you will fetch all contact names from address book.I hope it will help you. -(void)addressbookfetch {
使用此代码,您将从通讯簿中获取所有联系人姓名。我希望它将对您有所帮助。
With this code you will fetch all contact names from address book.I hope it will help you.
-(void)addressbookfetch
{
CFErrorRef error = NULL;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &error);
CFArrayRef people=ABAddressBookCopyArrayOfAllPeople(addressBook);
CFMutableArrayRef peopleMutable = CFArrayCreateMutableCopy(
kCFAllocatorDefault,
CFArrayGetCount(people),
people
);
CFArraySortValues(
peopleMutable,
CFRangeMake(0, CFArrayGetCount(peopleMutable)),
(CFComparatorFunction) ABPersonComparePeopleByName,
(void*) ABPersonGetSortOrdering()
);
if(addressBook != nil)
{
NSLog(@"Succesful.");
NSArray *allContacts = (__bridge_transfer NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
NSUInteger i = 0;
for(i=0;i<[allContacts count];i++)
{
Person *person = [[Person alloc]init];
ABRecordRef contactPerson = (__bridge ABRecordRef)allContacts[i];
ABMultiValueRef phoneNumber = ABRecordCopyValue(contactPerson, kABPersonPhoneProperty);
NSUInteger k=0;
for(k=0;k<ABMultiValueGetCount(phoneNumber);k++)
{
NSString *firstName = (__bridge_transfer NSString *)ABRecordCopyValue(contactPerson, kABPersonFirstNameProperty);
NSString *lastName = (__bridge_transfer NSString *)ABRecordCopyValue(contactPerson, kABPersonLastNameProperty);
NSString *fullName = [NSString stringWithFormat:@"%@ %@",firstName ?: @"",lastName ?: @""];
fullName = [fullName stringByReplacingOccurrencesOfString:@"(null)" withString:@""];
[addressData addObject:fullName];
NameStr = [[NSMutableString alloc] initWithString:fullName];
NameStrnew=[NSString stringWithString:fullName];
NSLog(@"Name string %@",NameStrnew);
[phoneBookNames addObject:NameStrnew];
NSString *phonenumber= (__bridge_transfer NSString *)ABMultiValueCopyValueAtIndex(phoneNumber, k);
if(k==0)
{
person.homePhone = phonenumber;
PhoneStr = [[NSMutableString alloc] initWithString:phonenumber];
PhoneStrnew =[NSString stringWithString:phonenumber];
NSLog(@"PhoneStrnew%@",PhoneStrnew);
// [addressData addObject:phonenumber];
[phoneBookNumbers addObject:PhoneStrnew];
}
-(作废)addressbookfetch
{
CFErrorRef error=NULL;
ABAddressBookRef addressBook=ABAddressBookCreateWithOptions(NULL,错误(&R);
CFArrayRef people=abAddressBookCopyArrayFallPeople(地址簿);
CFMutableArrayRef peopleMutable=CFArrayCreateMutableCopy(
KCO默认值,
CFArrayGetCount(人),
人
);
CFArraySortValues(
人是可变的,
CFRangeMake(0,CFArrayGetCount(人员可变)),
(CFComparatorFunction)ABPersonComparepropleByName,
(无效*)ABPersonGetSortOrdering()
);
如果(地址簿!=nil)
{
NSLog(@“成功”);
NSArray*所有联系人=(u_u桥u传输NSArray*)ABAddressBookCopyArrayFallPeople(addressBook);
整数i=0;
对于(i=0;itry this:请发布一些代码。@LyndseyScott:谢谢Lyndsey尝试解决我的问题,但是,我解决了这个问题,只是循环中有一点小错误。