首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ABAddressBook如何设置返回的ABRecordRef组?

ABAddressBook如何设置返回的ABRecordRef组?
EN

Stack Overflow用户
提问于 2012-05-10 06:25:30
回答 1查看 1.4K关注 0票数 0

所以我称之为这个方法:

代码语言:javascript
复制
- (void)newPersonViewController:(ABNewPersonViewController*)newPersonViewController didCompleteWithNewPerson:(ABRecordRef)person

它返回一个ABRecordRef。但是我不能用ABGroupAddMember把它给一个团体看。

如果手动创建ABRecordRef,则可以设置组,但不能使用委托方法返回的person对象。

例如,这段代码可以工作(从这里的帖子借用,找不到链接):

代码语言:javascript
复制
CFErrorRef error = NULL;

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

ABAddressBookSave(addressBook, &error);

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

ABGroupAddMember(group, person, &error); // add the person to the group         
ABAddressBookSave(addressBook, &error);

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

// relase the ABRecordRef  variable
CFRelease(person);  

如何使该代码与返回的Person ABRecordRef对象一起工作?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-05-10 06:54:38

好的,所以修正了(有时候问这个问题会让你头脑清醒,去解决它)

代码语言:javascript
复制
int i = ABRecordGetRecordID(person);
ABRecordRef p = ABAddressBookGetPersonWithRecordID(addressBook,i);

正确创建一个新的ABRecordRef似乎解决了这个问题。不知道为什么。也许有人能说出你为什么要重铸它?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10528531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档