2015-01-29 4 views
-1

Я столкнулся с одной проблемой из адресной книги, я сохранил два телефонных номера из моих контактов один, как дома, другой, как офис, я получаю только один номер, приложение contact list.if Я хочу получить два числа, что я хочу сделать.все контактные номера не поступают из адресной книги

+0

попробовать это: http://stackoverflow.com/questions/17975297/retrieve-all-contacts-phone-numbers-in-ios –

+0

Post код пожалуйста. –

+0

@ LyndseyScott: спасибо, Lyndsey за попытку решить мою проблему, но, я решил эту проблему, только небольшая ошибка есть в цикле. –

ответ

0
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]; 

       }