如何使用ABAddressBook删除iPhone通讯簿中的记录?
我正在学习addressbook框架,然后我想从iPhone通讯录中删除该记录。我查阅了文档,发现了一个名为如何使用ABAddressBook删除iPhone通讯簿中的记录?,iphone,objective-c,ios,cocoa-touch,abaddressbook,Iphone,Objective C,Ios,Cocoa Touch,Abaddressbook,我正在学习addressbook框架,然后我想从iPhone通讯录中删除该记录。我查阅了文档,发现了一个名为ABAddressBookRemoveRecord的函数,但我找不到删除记录的方法,比如用户将选择一条记录,然后点击删除按钮,然后记录将被删除 到目前为止,我所做的只是在文件上撞了头,仅此而已 你能给我一个如何删除通讯录中记录的链接或示例吗 谢谢大家! 通过ABAddressBookRemoveRecord删除记录时,应通过ABAddressBookSave保存最终结果。如果您想要一个UI
ABAddressBookRemoveRecord
的函数,但我找不到删除记录的方法,比如用户将选择一条记录,然后点击删除按钮,然后记录将被删除
到目前为止,我所做的只是在文件上撞了头,仅此而已
你能给我一个如何删除通讯录中记录的链接或示例吗
谢谢大家! 通过
ABAddressBookRemoveRecord
删除记录时,应通过ABAddressBookSave
保存最终结果。如果您想要一个UIInterface来删除记录,我认为您需要自己实现。apple提供的关于联系人的UI位于ABAddressBookUI框架内
查看ABPersonViewController+Delete类别,该类别允许在不使用任何私人方法的情况下删除联系人:
目标C代码:
ABAddressBookRef addressBook;
CFErrorRef error = NULL;
addressBook = ABAddressBookCreate();
ABRecordRef person = ABAddressBookGetPersonWithRecordID(addressBook,<YOUR 'PERSON' GOES HERE>);
ABAddressBookRemoveRecord(addressBook, (ABRecordRef)person, &error );
if(error !=NULL)
{
// Handle success
}
ABAddressBookSave(addressBook, NULL);
ABAddressBookRef地址簿;
CFErrorRef error=NULL;
addressBook=ABAddressBookCreate();
ABRecordRef person=ABAddressBookGetPersonWithRecordID(addressBook,);
ABAddressBookRemoveRecord(地址簿,(ABRecordRef)个人和错误);
if(错误!=NULL)
{
//成功
}
ABAddressBookSave(地址簿,空);
Swift代码:
var emptyDictionary: CFDictionaryRef?
var addressBookRef: ABAddressBookRef?
var err: Unmanaged<CFErrorRef>? = nil
var userRecord: ABRecordRef?
addressBookRef = ABAddressBookCreateWithOptions(emptyDictionary, &err)?.takeRetainedValue()
userRecord = ABAddressBookGetPersonWithRecordID(addressBookRef, "Record ID of User").takeUnretainedValue()
ABAddressBookRemoveRecord(addressBookRef, userRecord, &err)
if err != nil {
// Handle success
}
// Save Address Book changes
if ABAddressBookHasUnsavedChanges(addressBookRef){
var err: Unmanaged<CFErrorRef>? = nil
let savedToAddressBook = ABAddressBookSave(addressBookRef, &err)
if savedToAddressBook {
print("Successully saved changes.")
} else {
print("Couldn't save changes.")
}
} else {
print("No changes occurred.")
}
var emptyDictionary:CFDictionaryRef?
var addressBookRef:ABAddressBookRef?
变量错误:非托管?=无
var userRecord:ABRecordRef?
addressBookRef=ABAddressBookCreateWithOptions(emptyDictionary,&err)?。takeRetainedValue()
userRecord=ABAddressBookGetPersonWithRecordID(addressBookRef,“用户的记录ID”)。TakeUnrepainedValue()
ABAddressBookRemoveRecord(addressBookRef、userRecord和err)
如果出错!=零{
//成功
}
//保存通讯簿更改
如果ABAddressBookHasUnsavedChanges(addressBookRef){
变量错误:非托管?=nil
让savedToAddressBook=ABAddressBookSave(addressBookRef,&err)
如果已保存,则加载Dressbook{
打印(“成功保存更改”)
}否则{
打印(“无法保存更改”)
}
}否则{
打印(“未发生任何更改”)
}
ya我已经完成了你说的第一部分,所以你的意思是我应该看看ABAddressBookUI.h文件你可以看看ABAddressBookUI.framework,它是另一个框架。但是,我记得您需要手动实现什么。如果要删除ABRecordRef的属性,则ABAddressBookUI将是您的好友。