Не удается добавить контакт в группу с помощью ABGroupAddMember в iphone? - PullRequest
0 голосов
/ 22 марта 2011

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

Невозможно добавить контакт в группу !!

ABRecordRef group = ABGroupCreate(); //create a group 
ABRecordSetValue(group, kABGroupNameProperty,@"My Group", &error); // set group's name 
ABGroupAddMember(group, person, &error); // add the person to the group 
ABAddressBookAddRecord(addressBook, group, &error); // add the group   
ABAddressBookSave(addressBook, nil); //save the record   

Ответы [ 2 ]

1 голос
/ 22 марта 2011

Пожалуйста, найдите рабочий код ниже ...

ABRecordRef aRecord = ABPersonCreate(); 
    CFErrorRef  anError = NULL; 
    ABRecordSetValue(aRecord, kABPersonFirstNameProperty, 
                     CFSTR("Jijo"), &anError); 
    ABRecordSetValue(aRecord, kABPersonLastNameProperty, 
                     CFSTR("Pulikkottil"), &anError); 
    if (anError != NULL) { 

        NSLog(@"error while creating..");
    } 
    CFStringRef firstName, lastName; 
    firstName = ABRecordCopyValue(aRecord, kABPersonFirstNameProperty); 
    lastName  = ABRecordCopyValue(aRecord, kABPersonLastNameProperty); 




    ABAddressBookRef addressBook; 
    CFErrorRef error = NULL; 
    addressBook = ABAddressBookCreate(); 

    BOOL isAdded = ABAddressBookAddRecord (
                            addressBook,
                            aRecord,
                             &error
    );

    if(isAdded){

        NSLog(@"added..");
    }
    if (error != NULL) {
        NSLog(@"ABAddressBookAddRecord %@", error);
    } 
    error = NULL;

    BOOL isSaved = ABAddressBookSave (
                       addressBook,
                       &error
    );

    if(isSaved){

        NSLog(@"saved..");
    }

    if (error != NULL) {
        NSLog(@"ABAddressBookSave %@", error);
    } 

    CFRelease(aRecord); 
    CFRelease(firstName); 
    CFRelease(lastName); 
    CFRelease(addressBook);

Не забудьте добавить AddressBook.Framework.

Ref: AddressBookProgrammingGuideforiPhone.pdf .

То же самое обсуждается

http://www.iphonedevsdk.com/forum/iphone-sdk-development/12496-add-contact-address-book.html

0 голосов
/ 26 мая 2014

Я использовал следующий способ для решения этой задачи.

1.Получить уникальный идентификатор группы.

ABRecordRef currentGroup = (ABRecordRef)CFBridgingRetain([source.groups objectAtIndex:groupIndex]);  
ABRecordID currentGroupID=ABRecordGetRecordID(currentGroup);

2.Добавьте участника в группу.

ABRecordRef currentGroup = ABAddressBookGetGroupWithRecordID(addressBook, currentGroupID);  
BOOL didAdd,didSave;
NSString *strPersonContactID=[appDelegate.arrOfSelectedContactsToEdit objectAtIndex:i];
ABRecordID personContactID=(ABRecordID)[strPersonContactID intValue];
ABRecordRef person = ABAddressBookGetPersonWithRecordID(addressBook, personContactID);
didAdd = ABGroupAddMember(currentGroup,person,&error);
if (!didAdd)       
 {
 NSLog(@"Unresolved error while adding person group");

 }

 didSave = ABAddressBookSave(addressBook, &error);

if (!didSave)      
  {
NSLog(@"Unresolved error while saving address book");
 }

 CFRelease(addressBook);

И если вы хотите проверить существование группы, используйте идентификатор группы, это поможет вам однозначно дифференцировать группы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...