• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift - 使用Contacts访问通讯录1(纯代码获取联系人)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
在 iOS9.0 之前, 我们只能通过 AddressBook 框架来获取通讯录联系人信息。但 AddressBook framework 语法很奇怪,同时也十分难用。所以苹果从 iOS9.0 开始推出的全新的联系人框架 Contacts FrameWork 作为替代,同时将原来的 AddressBook 给废弃掉。

Contacts FrameWork 同样包含两种访问通讯录的方式:
  • ContactsUI.framework 框架 : 通过系统提供的通讯录交互界面来访问(替代原先的 AddressBookUI.framework
  • Contacts.framework 框架 : 没有界面,通过代码来获取所有联系人信息(替代原先的 AddressBook.framework
前文中我介绍了 ContactsUI.framework 的使用,本文接着演示 Contacts.framework 框架的使用。 

一、Contacts.framework介绍

1,Contacts使用步骤

(1)获取用户的授权,如果授权则往下继续进行。
(2)创建通讯录对象
(3)创建联系人请求对象
(4)遍历所有联系人,获取联系人信息

2,联系人记录的属性

每一条联系人记录中,都有很多属性,而这些属性又分为单值属性和多值属性。
(1)单值属性是只有一个值的属性:
  • familyName :姓
  • givenName :名
  • middleName :中间名
  • previousFamilyName :前缀
  • nameSuffix :后缀
  • phoneticFamilyName :姓氏汉语拼音或音标
  • phoneticGivenName :名字汉语拼音或音标
  • nickname :昵称
  • organizationName :公司(组织)
  • jobTitle :职位
  • departmentName :部门
  • note :备注

(2)多值属性是包含多个值的集合类型:
  • phoneNumbers :电话
  • emailAddresses :Email
  • postalAddresses :地址
  • urlAddresses :URL属性
  • dates :纪念日
  • instantMessageAddresses :获取即时通讯(IM)
  • socialProfiles :社交账号
  • contactRelations :亲属关系人

3,多值属性标签的本地名称

在多值属性中包含了 label(标签)、value(值)和 ID 等部分,其中标签和值都是可以重复的,而 ID 是不能重复的。
对于标签,我们可以使用 CNLabeledValue<NSString>.localizedString(forLabel:) 方法转为本地标签名(即能看得懂的标签名,比如 workhome)。要不然打印出来的是 _$!<Home>!$__$!<Work>!$_ 这样的数据。

二、获取所有联系人信息

1,效果图

(1)程序启动后自动开始请求并获取通讯录信息。
(2)同时将通讯录里的所有联系人信息输出到控制台中。(具体包括联系人的姓名、昵称、公司、职位、部门、备注、电话、email、 地址、纪念日、即时通讯)

2,Info.plist配置

由于苹果安全策略更新,在使用 Xcode8 开发时,需要在 Info.plist 配置请求通讯录的相关描述字段(Privacy - Contacts Usage Description

3,样例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
swift对象副本修复之简单理解发布时间:2022-07-14
下一篇:
Welcome-to-Swift-23访问控制(AccessControl)发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap