2011-03-22 37 views
0

我正在使用下面的代码,但仍然无法在组中添加联系人信息,还有一件事情总是用来创建新组。我也想检查现有的gruop是否可用或不!无法在iPhone中使用ABGroupAddMember在组中添加联系人?

无法在组中添加联系人!

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 

回答

1

请看以下工作代码...

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。

参考文献:AddressBookProgrammingGuideforiPhone.pdf

同样是讨论

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

+0

不错,但什么ABT组? – Devang 2011-03-22 06:05:49

+0

Plz检查教程.... http://www.mlsite.net/blog/?p=288也看看帖子http://www.iphonedevsdk.com/forum/iphone-sdk-development /6818-assign-contact-group.html – Jhaliya 2011-03-22 06:13:08

0

我用下面的方法来实现这个任务。

1.获取组唯一ID。

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); 

如果你想检查组的存在,使用组ID,这将帮助你区分这组独特的。

相关问题