Contacts(实战)

来源:互联网 发布:中国保险网络大学80分 编辑:程序博客网 时间:2024/04/27 17:08

Contacts Framework主要用于帮助我们获取用户的联系方式,即通讯录中的相关信息。我们可以对其实现增删改查及归纳整理等相关功能。

下面介绍一些比较常用的代码实现。

1 增加联系人

// Creating a mutable object to add to the contactlet contact = CNMutableContact()contact.contactType = CNContactType.Person // 类型// 照片if let image = UIImage(named: "qq") {    if let data = UIImagePNGRepresentation(image) {        contact.imageData = data    }}contact.familyName = "阳" // 姓contact.givenName = "君" // 名contact.jobTitle = "IOS攻城师" // 工作// 电话let homePhone = CNLabeledValue(label:CNLabelPhoneNumberMobile, value:CNPhoneNumber(stringValue:"185-1105-6826"))contact.phoneNumbers = [homePhone]// 邮件let workEmail = CNLabeledValue(label:CNLabelWork, value:"937447974@qq.com") // 工作contact.emailAddresses = [workEmail]// 家庭地址let homeAddress = CNMutablePostalAddress()homeAddress.street = "西城区" // 街道homeAddress.city = "北京" // 城市homeAddress.state = "北京"// 省homeAddress.postalCode = "000000" // 邮编contact.postalAddresses = [CNLabeledValue(label:CNLabelHome, value:homeAddress)] // 添加地址// 生日let birthday = NSDateComponents()birthday.year = 2016birthday.month = 1birthday.day = 12contact.birthday = birthday// Saving the newly created contactdo {    let saveRequest = CNSaveRequest()    saveRequest.addContact(contact, toContainerWithIdentifier:self.store.defaultContainerIdentifier())    try self.store.executeSaveRequest(saveRequest)} catch {    print("未知错误:\(error)")}

2 查询联系人

/// 快速查询private var predicate: NSPredicate! {    didSet {        do {            self.data = try self.store.unifiedContactsMatchingPredicate(self.predicate, keysToFetch:[CNContactGivenNameKey, CNContactFamilyNameKey])            self.tableView.reloadData()        } catch {            print("未知错误:\(error)")        }    }}// 调用self.predicate = CNContact.predicateForContactsInContainerWithIdentifier(self.store.defaultContainerIdentifier()) //predicateForContactsMatchingName("")

3 删除联系人

// 删除电话do {    // 删除通讯录中电话    let saveRequest = CNSaveRequest()    let contact = self.data[indexPath.row].mutableCopy() as! CNMutableContact    saveRequest.deleteContact(contact)    // 保存    try self.store.executeSaveRequest(saveRequest)} catch {    print("未知错误:\(error)")}

 


Appendix

Sample Code

Swift

Contacts Framework Reference

Revision History

时间 描述 2016-01-14 博文完成

CSDN:http://blog.csdn.net/y550918116j

GitHub:https://github.com/937447974/Blog

0 0
原创粉丝点击