iOS 8以上系统调用通讯录与属性选择
需积分: 9 22 浏览量
更新于2024-09-11
收藏 4KB MD 举报
在iOS开发中,调用系统的通讯录功能是一项常见的需求,尤其是在需要用户选择联系人或获取联系人信息的应用中。本文档提供了详细的步骤来实现这一功能,主要针对iOS 7及后续版本。
首先,我们需要导入必要的头文件。`#import<AddressBook/AddressBook.h>` 和 `#import<AddressBookUI/AddressBookUI.h>` 是用于与系统通讯录进行交互的关键,它们包含了与联系人数据模型、访问权限管理和用户界面相关的类和协议。
在iOS 7及以上版本,我们需要实现两个代理方法,以便在用户操作过程中得到相应的反馈。这两个代理方法是 `<ABPeoplePickerNavigationControllerDelegate>` 和 `<UINavigationControllerDelegate>`。前者负责处理用户在选择联系人时的行为,如取消操作;后者则是对导航控制器的通用代理,确保应用能够正确管理显示和隐藏控制器。
具体调用系统通讯录的方法是在一个名为 `getCate` 的函数中实现的。创建一个 `ABPeoplePickerNavigationController` 的实例 `pNC`,并将当前对象设置为它的代理。接下来,判断设备的系统版本是否大于等于8.0,因为在iOS 8及以后版本,为了保护用户隐私,需要设置一个默认的筛选条件,即 `[NSPredicate predicateWithValue:false]`,表示不进行任何筛选。然后,通过 `presentViewController:animated:completion:` 方法展示这个导航控制器。
在iOS 8及更高版本中,还需要实现一个额外的代理方法 `peoplePickerNavigationController:didSelectPerson:property:identifier:`,当用户选择了一个联系人后,这个方法会被调用,传递了所选联系人的记录引用、属性标识符等信息。在这个方法中,可以进一步处理用户的选择,例如获取或存储联系人数据。
调用系统通讯录在iOS开发中需要遵循苹果的框架和隐私政策,通过适当的代理方法来控制用户体验和数据获取。确保正确地导入所需的库,实现相应的代理协议,并根据系统版本调整策略,是成功集成此功能的关键。
2024-01-20 上传
2013-04-23 上传
2013-11-08 上传
2024-03-14 上传
2016-10-13 上传
2011-10-31 上传
2015-01-23 上传
dang_hui
- 粉丝: 0
- 资源: 1
最新资源
- serverlesss-punk
- pwp:测试pagina python
- yezi.rar_图形图像处理_matlab_
- RectuangularByTouch:通过触摸屏创建矩形
- textract:从任何文档中提取文本。 不要糊涂别大惊小怪
- something-awesome:我的COMP6841真棒
- c.zip_系统设计方案_Visual_C++_
- standards:数字生活API标准
- 适用于iOS的浮动条形图-Swift开发
- 大创竞赛之路:备赛资料全攻略
- BibNets:创建和分析书目网络
- qphotoview:基于Qt的照片查看器,专注于摄影师的需求
- asdsw2021:Materiale Corso di Architettura dei Sistemi Distribuiti 2021
- xxy.zip_GDI/图象编程_C/C++_
- Price-fix-crx插件
- 南方跨计算机z80