iphone - 在 iPhone 通讯录中创建群组

标签 iphone objective-c xcode

我在 iPhone 应用程序中工作,该应用程序使用将联系人添加到地址簿。我已经能够将联系人添加到地址簿,但我面临的问题是在将联系人记录添加到我创建的组时。

该联系人是在所有不在已创建组内的联系人下创建的。下面是我用过的代码

// create address book record
ABAddressBookRef addressBook = ABAddressBookCreate(); 
// create a person  
ABRecordRef person = ABPersonCreate();  
// first name of the new person
ABRecordSetValue(person, kABPersonFirstNameProperty, @"FirstName" , nil);
// his last name 
ABRecordSetValue(person, kABPersonLastNameProperty, @"LastName", nil);  
//add the new person to the record
ABAddressBookAddRecord(addressBook, person, nil); 

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   

//save the record
ABAddressBookSave(addressBook, nil);  

// relase the ABRecordRef  variable
CFRelease(person);  

最佳答案

这是我的测试,我测试过,效果很好。

ABAddressBookRef ab = ABAddressBookCreate();
CFErrorRef error;
ABRecordRef group = ABGroupCreate();
ABRecordSetValue(group, kABGroupNameProperty,@"new group", &error);
ABAddressBookAddRecord(ab, group, &error);
ABAddressBookSave(ab, &error);
//Create new person and save to this group
ABRecordRef record = ABPersonCreate();
BOOL isSuccess ;

isSuccess  = ABRecordSetValue(record, kABPersonNicknameProperty,@"GroupMember nick name", &error);
isSuccess = ABRecordSetValue(record, kABPersonMiddleNameProperty, @"Middle name", &error);

ABMutableMultiValueRef copyOfPhones = ABMultiValueCreateMutable(kABPersonPhoneProperty);

CFTypeRef phone= CFSTR("123000222111");

ABMultiValueAddValueAndLabel(copyOfPhones, phone,kABPersonPhoneMobileLabel,NULL);

isSuccess = ABRecordSetValue(record, kABPersonPhoneProperty, copyOfPhones, &error);

isSuccess = ABAddressBookAddRecord(ab, record, &error);
isSuccess = ABAddressBookSave(ab, &error);

ABGroupAddMember(group, record, &error);

NSLog(@"is success %d", isSuccess);

ABAddressBookSave(ab, &error);
CFRelease(group);  

关于iphone - 在 iPhone 通讯录中创建群组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5712740/

相关文章:

iphone - 如何确定外接耳机是否已连接到 iPhone?

iphone - iOS SplitView/Universal 帮助需要 xcode 4.2

ios - 序列化 JSON 而不用 [ ] 括起来

objective-c - 使用 segue 设置详细 View Controller

ios - 删除 Xcode 中的 'is missing from working copy' 警报

iphone - Iphone 的 MMX 说明

iphone - cocos2d 使用内存块

ios - 调整 super View 大小时自动调整 subview 大小

ios - 为什么 UIBarButtonItem 显示为已禁用?

ios - 如何在 UICollectionView 上设置高度/保持 UICollectionView 的高度不在模拟器中扩展