问题调用ABAddressBookGetPersonWithRecordID

时间:2012-04-09 09:47:08

标签: iphone objective-c ios abaddressbook

有没有人对此代码有任何疑问......

ABRecordRef person = ABAddressBookGetPersonWithRecordID (addressBook,recordID);

到目前为止,我遇到了很多重大问题。我之前发布过此问题Intermittent error accessing core data model / contacts database

但是,我现在已经跟踪了这个方法,尽管有合法的addressBook和recordID值,但返回NULL值。

知道为什么会这样吗?

非常感谢

2 个答案:

答案 0 :(得分:1)

发布答案以防其他人帮助......

事实证明这个问题与记忆有关。我创建了一个addressBook:ABAddressBookCreate()。这发生在一个循环中,所以一次又一次地创建。解决方案是将创建移到循环之外并与CFRelease(addressBook)保持平衡;命令。

希望这有助于其他人!!

答案 1 :(得分:0)

我已经成功地完成了一个地址簿,添加,编辑和删除联系人列表中的记录。没有出现这种类型的错误。把它放在.h文件......

ABRecordID 
recordID;

将以下代码放在

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
{
 recordID = ABRecordGetRecordID(person);
 NSLog(@"Record id is %d",recordID);
}

如果您获得了reoord id,那么我认为不会出现这样的问题。     让我们试试......