以编程方式删除自定义电话标签 [英] Programmatically delete custom phone labels

查看:54
本文介绍了以编程方式删除自定义电话标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在iOS中,可以为电话号码和电子邮件地址创建自定义标签.有没有办法以编程方式(使用CNContacts或ABAddressBook)删除那些创建的标签?换句话说:我不想从联系人中删除自定义标签,而是要从系统中删除自定义标签",因此当有人显示可用列表时,它根本不会显示.

附加的iOS 9源代码,可在电话簿中创建联系人,并在电子邮件字段上使用自定义标签.

  func createContact(){让contactStore = CNContactStore()让newContact = CNMutableContact()newContact.givenName =克里斯"newContact.familyName =最后一个"let homeEmail = CNLabeledValue(标签:"RandomLabel",值:"IGotAnEmail@Address.com")newContact.emailAddresses = [homeEmail]做 {让saveRequest = CNSaveRequest()saveRequest.addContact(newContact,toContainerWithIdentifier:nil)尝试contactStore.executeSaveRequest(saveRequest)}抓住 {NSLog(保存失败")}} 

解决方案

Contact Framework + deleteContact

可能会对您有所帮助.

使用此功能

我今天过得很好:

  NSOperationQueue().addOperationWithBlock {[unown store] in让谓词= CNContact.predicateForContactsMatchingName("john")让toFetch = [CNContactEmailAddressesKey]做{让通讯录=尝试store.unifiedContactsMatchingPredicate(predicate,keysToFetch:toFetch)守卫contacts.count>其他0个{打印(未找到联系人")返回}//仅对符合我们条件的第一个联系人执行此操作警卫让contact = contacts.first else {返回}让req = CNSaveRequest()让mutableContact = contact.mutableCopy()为!CNMutableContactreq.deleteContact(mutableContact)做{尝试store.executeSaveRequest(req)打印(成功删除用户")}赶快让e {print(错误= \(e)")}}抓住让犯错{打印(错误)}} 

似乎可以,但是您需要执行以下批处理功能:

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆