当前位置 : 主页 > 手机开发 > ios >

ios – 在swift中以特定时间以编程方式删除地址簿中的联系人

来源:互联网 收集:自由互联 发布时间:2021-06-11
我试图以编程方式在特定时间从地址簿中删除联系人.甚至可以在 Swift中使用Apple吗?我已经熟悉CNContactStore,因为我已经开始在电话簿中添加联系人了.授予访问联系人等的权限.但我不知
我试图以编程方式在特定时间从地址簿中删除联系人.甚至可以在 Swift中使用Apple吗?我已经熟悉CNContactStore,因为我已经开始在电话簿中添加联系人了.授予访问联系人等的权限.但我不知道如何以特定时间以编程方式从地址簿(永远)中删除联系人.

任何帮助表示赞赏!

参考:

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

解释(来自链接):

删除联系人

“iOS联系人框架为我们提供了deleteContact(:)函数来帮助我们删除联系人.希望你到目前为止已经理解了这个教程,因为我只是概述了这个过程,让你试一试.就像在本教程中我们将实例化一个CNSaveRequest类型的对象,发出我刚刚提到的deleteContact(:)函数并将可变联系人传递给它.然后,就像我们创建联系人或更新的联系人时一样,我们将使用executeSaveRequest(_ :).

请注意,删除表示删除!无法再次获取已删除的联系人.这在模拟器上无关紧要,但您确实需要确保安装协议,以便不删除用户联系人.

那么,你有没有设法让删除工作?好的,好的,我会发布完整的代码,你可以看到.“

解决方案(来自链接):

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)
}
网友评论