我正在学习地址簿框架,然后我想从iPhone通讯录中删除该记录。我查阅了文档,发现了一个名为ABAddressBookRemoveRecord的函数,但我找不到删除记录的方法,比如用户选择一条记录,然后点击删除按钮,然后记录就会被删除。
到目前为止,我所做的一切只是为了文档而拼命工作,仅此而已。
你能给我提供一个如何在通讯录中删除记录的链接或例子吗?
谢谢!
发布于 2012-01-06 17:33:41
查看ABPersonViewController+Delete类别,它可以在不使用任何私有方法的情况下删除联系人:
发布于 2010-11-21 18:20:06
当您通过ABAddressBookRemoveRecord删除一条记录时,您应该通过ABAddressBookSave保存最终结果。如果你想要一个UIInterface来删除记录,我认为你需要自己实现。苹果公司提供的关于联系人的用户界面在ABAddressBookUI framework内部。
发布于 2017-02-01 20:53:30
Objective 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);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.")
}https://stackoverflow.com/questions/4237332
复制相似问题