iOS通讯录

ABAddressBook 和ABAddressBookUI是iOS9.0之前使用获取联系人信息的.iOS9.0之后,苹果推出了新的框架Contact和ContactUI. AB是使用C写的,调用方法全部都是C的函数,而CN是用OC写的,调用方法简单.

1.ABAddressBook 和ABAddressBookUI

ABAddressBookUI是封装的ABAddressBook API,用来操作数据库联系人信息.

a.ABPeoplePickerNavigationController 展示联系人列表;

b.ABPersonViewController,展示传入的peoson属性,通过设置属性决定是否编辑;

c.ABNewPersonViewController 添加一个新的person,但是该VC必须加入到Navi下,所以需要模态推出该视图;

d.ABUnknownPersonViewController 使用当前数据库内联系人,创建一个新的Person.

以上四个VC都有各自的代理方法,处理之后的工作.

也可以直接使用ABAddressBook API来操作联系人信息

a. 添加联系人,添加联系人之前判断联系人是否存在:

iOS通讯录_第1张图片
判断添加的联系人是否存在

图片中只判断了联系人姓名,可以多个属性同时进行判断,来决定是否已经添加.


iOS通讯录_第2张图片
添加联系人

联系人的某些属性,eg:电话号码,邮箱等都是可以填写多个,所以需需要使用多值属性.

b.删除Person

iOS通讯录_第3张图片
删除联系人

2.Contact和ContactUI

与ABAddressBookUI一样,ContactUI也是苹果提供的操作联系人信息的快捷方式.

ContactUI中只有两个控制器,CNContactPickerViewController和CNContactViewController,

a. CNContactPickerViewController 展示联系人列表;

b. CNContactViewController 提供如下三种初始化方法,与AB功能相同

       + (instancetype)viewControllerForContact:(CNContact*)contact;

       + (instancetype)viewControllerForUnknownContact:(CNContact*)contact;

       + (instancetype)viewControllerForNewContact:(nullableCNContact*)contact

a. 使用Contact API添加联系人, 删除联系

iOS通讯录_第4张图片
判断联系人是否存在

保存联系人

iOS通讯录_第5张图片
保存联系人

delete联系人

iOS通讯录_第6张图片
删除某个联系人

你可能感兴趣的:(iOS通讯录)