在swift中以编程方式从联系人书中删除特定时间的联系人

我试图以编程方式从特定的时间从地址簿中删除联系人。 在Swift中甚至有可能,苹果允许吗? 我已经熟悉了CNContactStore因为我已经在将联系人添加到电话簿中了。 允许访问联系人等。但我不知道如何在特定的时间以编程方式从通讯录(永远)删除联系人。

任何帮助表示赞赏!

参考:

http://www.ios-blog.co.uk/tutorials/swift/contacts-framework-p2/


解释(从链接):

删除联系人

“iOS联系人框架为我们提供了deleteContact( :)帮助我们删除联系人的function,希望您已经足够了解了本教程,因为我只是简要介绍一下这个过程并让您尝试一下。在本教程中,我们将实例化一个types为CNSaveRequest的对象,发出刚刚提到的deleteContact( :)函数,并将可变的联系人传递给它。然后,就像我们创build联系人或更新的联系人一样,我们将使用executeSaveRequest(_ :)。

请注意,删除意味着删除! 被删除的联系人无法再次获取。 这在模拟器上不应该太重要,但是您需要确保安装了安全协议,以便您不会删除用户联系人。

那么,你是否设法让删除工作? 好吧,好的,我会发布完整的代码,以便你能看到。“


解决scheme(从链接):

 let predicate = CNContact.predicateForContactsMatchingName("John") let toFetch = [CNContactEmailAddressesKey] do{ let contacts = try store.unifiedContactsMatchingPredicate(predicate,keysToFetch: toFetch) guard contacts.count > 0 else{ print("No contacts found") return } guard let contact = contacts.first else{ return } let req = CNSaveRequest() let mutableContact = contact.mutableCopy() as! CNMutableContact req.deleteContact(mutableContact) do{ try store.executeSaveRequest(req) print("Success, You deleted the user") } catch let e{ print("Error = \(e)") } } catch let err{ print(err) }