Ios 在ABAddressBookSave上获取EXC\u BAD\u访问权限
我正在使用下面的代码从我的通讯录中删除联系人。在iOS 5.0上。但每次在ABAddressBookSaveaddressBook,NULL;上都会给我提供EXC\u BAD\u访问权限;。我选择了NSZombieEnalbeld,但它仍然没有给我明确的错误Ios 在ABAddressBookSave上获取EXC\u BAD\u访问权限,ios,iphone,exc-bad-access,addressbook,Ios,Iphone,Exc Bad Access,Addressbook,我正在使用下面的代码从我的通讯录中删除联系人。在iOS 5.0上。但每次在ABAddressBookSaveaddressBook,NULL;上都会给我提供EXC\u BAD\u访问权限;。我选择了NSZombieEnalbeld,但它仍然没有给我明确的错误 ABAddressBookRef addressBook = ABAddressBookCreate(); CFErrorRef error = NULL; ABRecordRef person = ABAddressBookCopy
ABAddressBookRef addressBook = ABAddressBookCreate();
CFErrorRef error = NULL;
ABRecordRef person = ABAddressBookCopyArrayOfAllSources(addressBook);
BOOL success = ABAddressBookRemoveRecord(addressBook, person, &error);
if (success)
{
BOOL su = ABAddressBookSave(addressBook, NULL);
NSLog(@"Removed ----");
}
CFRelease(addressBook);
出什么问题了?这条线路有问题:
ABRecordRef person = ABAddressBookCopyArrayOfAllSources(addressBook);
返回CFArray而不是ABRecord
如果要从通讯簿中删除某人,则需要获取其引用,如:
ABRecordRef person = ABAddressBookGetPersonWithRecordID(addressBook, recordID);
其中recordID是您试图删除的人的id,您需要获取该id
有关如何从通讯簿获取联系人的更多信息,请查看问题在于这一行:
ABRecordRef person = ABAddressBookCopyArrayOfAllSources(addressBook);
返回CFArray而不是ABRecord
如果要从通讯簿中删除某人,则需要获取其引用,如:
ABRecordRef person = ABAddressBookGetPersonWithRecordID(addressBook, recordID);
其中recordID是您试图删除的人的id,您需要获取该id
至于如何从通讯录中找到一个人的更多信息,你可以看看