2

有没有人对这个代码有问题...

ABRecordRef person = ABAddressBookGetPersonWithRecordID (addressBook,recordID);

到目前为止,我在这方面遇到了重大问题。我以前发布过这个问题间歇性错误访问核心数据模型/联系人数据库

但是,尽管存在合法的 addressBook 和 recordID 值,但我现在已经将其追踪到返回 NULL 值的方法。

知道为什么会发生这种情况吗?

非常感谢

4

2 回答 2

1

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

事实证明,这个问题与内存有关。我创建了一个地址簿:ABAddressBookCreate()。这是在循环中发生的,因此被一遍又一遍地创建。解决方案是将创建移出循环并使用 CFRelease(addressBook); 命令。

希望这对其他人有帮助!

于 2012-04-15T06:19:30.000 回答
0

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

ABRecordID 
recordID;

将以下代码放入

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

如果您在其中获得 reoord id,那么我认为不会出现此类问题。咱们试试吧 ...

于 2012-04-09T10:52:51.543 回答