Iphone ABAddressBookAddRecord删除联系人后添加失败

Iphone ABAddressBookAddRecord删除联系人后添加失败,iphone,objective-c,ios,Iphone,Objective C,Ios,我正在尝试从通讯簿中删除联系人,然后再次添加。 删除是可以的,但我不能添加它。没有错误。 新创建的联系人(ABPersonCreate();)可以正常工作 联系人未添加!为什么?请尝试以下步骤: 获取联系人详细信息(即调用“CFArrayGetValueAtIndex(allContacts,0)”时所做的操作) 创建一个新联系人(将其命名为contact2),并将您获得的详细信息复制到新联系人(使用命令“ABRecordSetValue(contact2、kabbersonfirstname

我正在尝试从通讯簿中删除联系人,然后再次添加。 删除是可以的,但我不能添加它。没有错误。 新创建的联系人(ABPersonCreate();)可以正常工作


联系人未添加!为什么?

请尝试以下步骤:

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

希望有帮助。

请再次查看您发布的代码。这没有道理。什么是“测试”,我们从来没有看到“所有人”是什么。对不起,复制和粘贴失败,修复了如何获取所有属性?KabbersonfirstNameProperty。。。而用户定义的contact2具有相同的详细信息?可在此处找到ABRecordSetValue(contact2,KabbersonfirstNameProperty,CFSTR([contact valueForProperty:KabbersonfirstNameProperty]),&Error)属性列表:
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