这篇文章主要介绍了IOS 通讯录信息读取兼容的实现方法的相关资料,这里提供实现方法帮助大家实现这样的功能,需要的朋友可以参考下
IOS 通讯录信息读取兼容的实现方法
项目中有一个功能需要读取通讯录中联系人的手机。在iOS8以前都是可用的,主要使用如下三个代理方法来实现
- (void) peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker
- (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController *)
peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
{
return NO;
}
但是iOS8更新以后,悲剧的事情发生了:
// Deprecated, use predicateForSelectionOfPerson and/or -peoplePickerNavigationController:didSelectPerson: instead.
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person NS_DEPRECATED_IOS(2_0, 8_0);
// Deprecated, use predicateForSelectionOfProperty and/or -peoplePickerNavigationController:didSelectPerson:property:identifier: instead.
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier NS_DEPRECATED_IOS(2_0, 8_0);
其中两个方法被干掉了(对于iOS开发者来说来说这种情况太常见了)
参考文档发现可以使用如下两个方法来代替:
// Called after a person has been selected by the user.
- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker didSelectPerson:(ABRecordRef)person NS_AVAILABLE_IOS(8_0);
// Called after a property has been selected by the user.
- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker didSelectPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier NS_AVAILABLE_IOS(8_0);
这两个方法是这样的,因为iOS8以后通讯录的结构有所变化:第一层是人名列表,点击某个人名进去之后是这个人的详细信息。
其中:
第一个方法是选中这个人之后调用。
第二个方法是选中这个人的详细信息后调用。
解析具体信息的代码可以完全不变
以上就是IOS 通讯录信息读取兼容的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
编程基础网
本文标题为:IOS 通讯录信息读取兼容的实现方法
基础教程推荐
猜你喜欢
- iOS统计项目的代码总行数 2022-11-01
- iOS对数组进行排序的实例代码 2023-03-16
- Android自定义view实现圆形进度条效果 2023-05-26
- iOS微信分享后关闭发送成功提示并返回应用 2023-01-03
- iOS的音频文件的格式转换示例 2023-06-11
- Android zxing如何识别反转二维码详解 2022-11-08
- 以代码实例总结iOS应用开发中数据的存储方式 2022-11-20
- Android自定义悬浮按钮效果 2023-04-22
- Kotlin的枚举与异常示例详解 2022-12-07
- 使用Android Studio创建OpenCV4.1.0 项目的步骤 2023-02-26
