2015-06-22 6 views
2

Как я могу изменить конкретную адресную книгу Имя и фамилия Программно. Может ли кто-нибудь помочь мне найти это.Редактирование адресной книги Имя и фамилия Программно

Am get Contact Recode, как показано ниже.

Email =  (
    "[email protected]" 
); 
First = John; 
    Last = Appleseed; 
numbers =  (
    "888-555-5512", 
    "888-555-1212" 
); 

}

Как я могу изменить первое и последнее значение.

Я использовал следующий код для извлечения контактной информации из устройства

CFErrorRef * error = NULL; 
addressBook = ABAddressBookCreateWithOptions(NULL, error); 
ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) 
             { 
              if (granted) 
              { 
               dispatch_async(dispatch_get_main_queue(), ^{ 
                CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook); 
                CFIndex numberOfPeople = ABAddressBookGetPersonCount(addressBook); 

                for(int i = 0; i < numberOfPeople; i++){ 
                 ABRecordRef person = CFArrayGetValueAtIndex(allPeople, i); 

                 NSString *firstName = (__bridge NSString *)(ABRecordCopyValue(person, kABPersonFirstNameProperty)); 
                 NSString *lastName = (__bridge NSString *)(ABRecordCopyValue(person, kABPersonLastNameProperty)); 
                 NSString *name=[NSString stringWithFormat:@"%@ %@",firstName,lastName]; 
                 NSString *Birthday=(__bridge NSString *)(ABRecordCopyValue(person, kABPersonBirthdayProperty)); 
                 NSLog(@"Name:%@ %@ %@", firstName, lastName,Birthday); 

                 //For Email ids 
                 NSMutableArray *Emails = [NSMutableArray array]; 

                 ABMutableMultiValueRef eMail = (__bridge ABMutableMultiValueRef)((__bridge NSString *) ABRecordCopyValue(person, kABPersonEmailProperty)); 

                 for (CFIndex i = 0; i < ABMultiValueGetCount(eMail); i++) { 

                  NSString *emails = (__bridge_transfer NSString *) ABMultiValueCopyValueAtIndex(eMail, i); 

                  [Emails addObject:emails]; 


                 } 


                 ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty); 

                 NSMutableArray *numbers = [NSMutableArray array]; 
                 for (CFIndex i = 0; i < ABMultiValueGetCount(phoneNumbers); i++) { 
                  NSString *phoneNumber = (__bridge_transfer NSString *) ABMultiValueCopyValueAtIndex(phoneNumbers, i); 
                  [numbers addObject:phoneNumber]; 
                 } 


                 NSMutableDictionary *contact = [NSMutableDictionary dictionary]; 
                 [contact setObject:firstName forKey:@"First"]; 
                 [contact setObject:lastName forKey:@"Last"]; 

                 [contact setObject:numbers forKey:@"numbers"]; 
                 [contact setObject:Emails forKey:@"Email"]; 

                 NSLog(@" contacts are %@",contact); 


                 [all_contacts addObject:contact]; 


                 NSLog(@"all contacts are %@",all_contacts); 

                 [self.tbl_contacts reloadData]; 





                } 
               }); 
              } 
             }); 
+0

@Rocketq: Пожалуйста, проверьте мой обновленный вопрос и посоветуйте мне, чтобы решить это. – sabir

+0

Откуда вы получаете эту ценность и как вы ее получили? Не могли бы вы поместить там какой-то код. – Sandeep

+0

Пожалуйста, проверьте обновленный вопрос @GeneratorOfOne – sabir

ответ

0

Сначала выберите нужный контакт:

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker 
    shouldContinueAfterSelectingPerson:(ABRecordRef)person 
    { 
     [self peoplePickerNavigationController:peoplePicker didSelectPerson:person]; 
     return NO; 

}

Приведи this: для установки и получения имени и прошлого наименование

ABRecordRef aRecord = ABPersonCreate(); 
    CFErrorRef anError = NULL; 
    bool didSet; 

    didSet = ABRecordSetValue(aRecord, kABPersonFirstNameProperty, CFSTR("Katie"), &anError); 
    if (!didSet) {/* Handle error here. */} 

    didSet = ABRecordSetValue(aRecord, kABPersonLastNameProperty, CFSTR("Bell"), &anError); 
    if (!didSet) {/* Handle error here. */} 

    CFStringRef firstName, lastName; 
    firstName = ABRecordCopyValue(aRecord, kABPersonFirstNameProperty); 
    lastName = ABRecordCopyValue(aRecord, kABPersonLastNameProperty); 

    /* ... Do something with firstName and lastName. ... */ 

    CFRelease(aRecord); 
    CFRelease(firstName); 
    CFRelease(lastName); 
+0

Можете ли вы поделиться мне несколькими примерами Поскольку я не использовал экран по умолчанию в адресной книге, я использовал свою собственную, поэтому не могу обновить контактную информацию, используя вышеописанный метод. @ Sujania – sabir

 Смежные вопросы

  • Нет связанных вопросов^_^