我正在学习地址簿框架,然后我想从iPhone通讯录中删除记录。我查阅了文档并找到了一个名为ABAddressBookRemoveRecord
的函数,但我找不到删除记录的方法,就像用户选择一条记录然后点击删除按钮,然后该记录将被删除。如何使用ABAddressBook删除iPhone通讯录中的记录?
我到目前为止所做的一切都让我对文档感到头痛,这就是全部。
您能否给我一个链接或示例如何删除地址簿中的记录?
谢谢!
我正在学习地址簿框架,然后我想从iPhone通讯录中删除记录。我查阅了文档并找到了一个名为ABAddressBookRemoveRecord
的函数,但我找不到删除记录的方法,就像用户选择一条记录然后点击删除按钮,然后该记录将被删除。如何使用ABAddressBook删除iPhone通讯录中的记录?
我到目前为止所做的一切都让我对文档感到头痛,这就是全部。
您能否给我一个链接或示例如何删除地址簿中的记录?
谢谢!
退房的ABPersonViewController +删除类别使接触删除操作,不使用任何私有方法:
当您通过ABAddressBookRemoveRecord
删除记录时,应该将最终结果保存ABAddressBookSave
。如果你想要一个UIInterface删除记录,我认为你需要自己实现。有关苹果提供的联系人的UI位于ABAddressBookUI framework
之内。
目标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.")
}
你已经完成了第一部分,所以你的意思是说我应该看看ABAddressBookUI.h文件 – Radix 2010-11-21 10:31:18
你可以看看ABAddressBookUI.framework,它是另一个框架。但是,我记得你想要手动实现的东西。如果你想删除一个ABRecordRef属性,ABAddressBookUI将成为你的朋友。 – AechoLiu 2010-11-22 01:49:02