首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ABAddressBook删除iPhone通讯录中的记录?

如何使用ABAddressBook删除iPhone通讯录中的记录?
EN

Stack Overflow用户
提问于 2010-11-21 18:09:43
回答 3查看 2.9K关注 0票数 3

我正在学习地址簿框架,然后我想从iPhone通讯录中删除该记录。我查阅了文档,发现了一个名为ABAddressBookRemoveRecord的函数,但我找不到删除记录的方法,比如用户选择一条记录,然后点击删除按钮,然后记录就会被删除。

到目前为止,我所做的一切只是为了文档而拼命工作,仅此而已。

你能给我提供一个如何在通讯录中删除记录的链接或例子吗?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-06 17:33:41

查看ABPersonViewController+Delete类别,它可以在不使用任何私有方法的情况下删除联系人:

https://github.com/shrtlist/ABDelete

票数 3
EN

Stack Overflow用户

发布于 2010-11-21 18:20:06

当您通过ABAddressBookRemoveRecord删除一条记录时,您应该通过ABAddressBookSave保存最终结果。如果你想要一个UIInterface来删除记录,我认为你需要自己实现。苹果公司提供的关于联系人的用户界面在ABAddressBookUI framework内部。

票数 3
EN

Stack Overflow用户

发布于 2017-02-01 20:53:30

Objective C代码:

代码语言:javascript
复制
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代码:

代码语言:javascript
复制
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.")
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4237332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档