美文网首页
iOS-Contacts框架初学习

iOS-Contacts框架初学习

作者: Vantine | 来源:发表于2016-10-13 18:34 被阅读0次
  1. 先创建一个CNContactStore对象,用来获取和保存通讯录:
    let store = CNContactStore.init()
  2. 判断是否已经授权访问通讯录:
let status:CNAuthorizationStatus = CNContactStore.authorizationStatus(for: .contacts)
 if status == .notDetermined {
       store.requestAccess(for: .contacts, completionHandler: { (granted:Bool, error:Error?) in
       if error != nil{
          return
       }
       if granted {
          print("授权访问通讯录")
       }
       else {
          print("拒绝访问通讯录")
        }
        })
}
  1. 获取通讯录信息:
// 定义获取属性对应的key值
let keys = [CNContactGivenNameKey,CNContactFamilyNameKey,CNContactPhoneNumbersKey,CNContactImageDataKey]
// 创建CNContactFetchRequest对象
let request = CNContactFetchRequest.init(keysToFetch: keys as [CNKeyDescriptor])
// 遍历通讯录
do {
            try store.enumerateContacts(with: request) { (contact:CNContact, stop:UnsafeMutablePointer<ObjCBool>) in
                // 获取个人名字
                let familyName = contact.familyName
                let givenName = contact.givenName
                let fullName = String.init(format: "%@ %@", familyName,givenName)
                print(fullName)

                // 获取电话号码
                let phoneNumberArray = contact.phoneNumbers
                // 初始化一个数组,存放遍历到的所有电话号码
                let contactarray = NSMutableArray()
                for i in 0 ..< phoneNumberArray.count {
                    let phoneNumber = phoneNumberArray[i].value
                    print(phoneNumber.stringValue)
                    contactarray.add(phoneNumber.stringValue)
                }
                
                // 获取个人头像
                var image:UIImage? = nil
                if !Utils.isEmpty(contact.imageData) {
                    let imageData = contact.imageData
                    image = UIImage.init(data: imageData!)
                }
            }
        } catch  {
        }

与AddressBook相比,新的Contacts框架更加容易理解和使用,完全可以即刻获取通讯录,并可以进行创建和更新操作,与之相关的开发过程也可以被戏剧般地缩短,能够迅速地完成对通讯录的变更和修改。

相关文章

  • iOS-Contacts框架初学习

    先创建一个CNContactStore对象,用来获取和保存通讯录:let store = CNContactSto...

  • iOS-Contacts( TableView)

    [ ] 准备阶段:数据层model​ 请求数据-ContactsService ​ 写一个mock网络请求获取JS...

  • KnockoutJS学习与应用

    KnockoutJS学习与应用 KnockoutJS初认识 KnockoutJs是针对Web开发的MVVM框架(M...

  • Tensorflow——读取csv文件作为数据集

    最近需要完成一个机器学习相关的项目,初次接触Tensorflow框架,使用Python语言进行编程,由于笔者也是初...

  • EventBus框架初解

    EventBus其实解决了这样几个问题:保存订阅者、发布事件、切换线程、粘性事件 保存订阅者 在register(...

  • web框架初览

    最近由于工作需要,准备从前端往后端发展发展,遇到的第一个难题就是需要在服务器上搭建web框架,之前也大概的了解过什...

  • SpringBoot框架初窥探

    不得不说 SpringBoot 太复杂了,我本来只想研究一下 SpringBoot 最简单的 HelloWorld...

  • 插件框架初想

    前言 网上已经有很多关于插件设计的文章,但大多数都是比较粗浅的介绍了一些插件框架的基本原理,甚至有些只是说明了插件...

  • 初窥Ray框架

    本文首发于:行者AI[https://xingzheai.cn/details/eb6d92dbf4d] 随着各行...

  • SSM框架整合

    SSM框架整合 基于Maven+SpringMVC+Spring+MyBatis的组合,快速搭建SSM框架。适合初...

网友评论

      本文标题:iOS-Contacts框架初学习

      本文链接:https://www.haomeiwen.com/subject/smowyttx.html