0

我正在尝试从通讯录中删除联系人,然后再次添加。删除没问题,但我无法添加它。没有错误。一个新创建的联系人 ( ABPersonCreate(); ) 有效。

ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef allContacts = ABAddressBookCopyArrayOfAllPeople(ab);
ABRecordRef contact = CFArrayGetValueAtIndex(allContacts, 0);

ABAddressBookRemoveRecord(addressBook, contact, nil);
ABAddressBookSave(addressBook, nil);

BOOL addSuccess = ABAddressBookAddRecord(addressBook, contact, &error)
// addSuccess == YES, 
// error == null

BOOL saveSuccess = ABAddressBookSave(addressBook, &error)
// saveSuccess == YES
// error == null

未添加联系人!为什么?

4

1 回答 1

0

尝试以下过程:

  • 获取联系方式(即调用“ CFArrayGetValueAtIndex(allContacts, 0) ”时所做的操作)。
  • 创建一个新联系人(将其命名为contact2),并将您获得的详细信息复制到新联系人中(使用命令“ ABRecordSetValue(contact2, kABPersonFirstNameProperty, CFSTR("MyFirstName"), &Error)等...)。
  • 删除第一个联系人(联系人)。
  • 保存通讯录。
  • 将contact2 添加到通讯录。
  • 保存通讯录。

希望能帮助到你。

于 2012-09-18T13:23:24.837 回答