Contacts(实战)

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

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

1 增加联系人

// Creating a mutable object to add to the contact
let 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 = 2016
birthday.month = 1
birthday.day = 12
contact.birthday = birthday

// Saving the newly created contact
do {
    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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值