iOS 通讯录基础
来源:互联网 发布:java语音聊天代码 编辑:程序博客网 时间:2024/06/16 17:57
iOS 6 之后应用访问通讯录需要获得用户授权,并且只授权一次,即使卸载了之后再安装,也不用再次授权;
开发通讯录应用需要两个框架:
1.ABAddressBook 主要用于提供访问通讯录中的记录和属性等API,使用他需要自己构建UI。
2.ABAddressBookUI 这个框架给我们提供了4个视图控制器以及相应的委托协议,他们已经提供了UI界面
ABAddressBook 框架中常用的类“()”前面的类为Foundation中的类,()内的是Core Foundation框架中类
ABAddressBook(ABAddressBookRef)封装访问通讯录接口;
ABPerson (ABPersonRef)封装通讯录个人信息数据,是数据库的一条的记录;
ABGroup (ABGroupRef)封装通讯录信息数据,一个组包含多个人的信息,一个人的信息可以属于多个组;
ABRecord (ABRecordRef) 封装数据库中得一条记录,记录由属性组成;
ABAddressBookUI框架中的视图控制器
ABPeoplePickerNavigationController 他是从数据库中选取联系人导航控制器,对应的委托协议为ABPeoplePickerNavigationControllerDelegate
ABPersonViewController 查看并编辑单个联系人的信息,对应的委托协议为ABPersonViewControllerDelegate
ABNewPersonViewController 创建新联系人信息,对应的委托协议为ABNewPersonViewControllerDelegate
ABUnknowPersonViewController 呈现记录部分信息,这些信息可以创建新联系人的信息,或者添加到已存在的联系人,对应的委托协议为ABUnknowPwesonViewControllerDelegate
在使用ABAddressBook时我们使用的是Core Foundation框架; Core Foundation(c语言) 框架和Foundation(o-c)框架是相同的功能接口,如果要混合使用需要两个框架之间的“无开销桥接”;
这里用NSAArray来举个例子:
将Core Foundation类型转换为Foundation类型
CFArrayRef x; //第一种转换方式 NSArray *array = (__bridge NSArray *)x; //第二种转换方式 array = CFBridgingRelease(x);
使用第一种转换方式时不转换对象所有权,只是强制转换。需要手动释放对象;
使用第二种转换方式时转换对象所有权,并把对象所有权转让ARC ,不需要手动释放
将Foundation类型转换为Core Foundation类型
NSArray * array = nil; //第一种方式 CFArrayRef arrayRef = (__bridge CFArrayRef)array; //第二种方式 arrayRef = CFBridgingRetain(array);
这两种方式同样是第一种不转换对象所有权,还是Foundation对象所以自动释放 。
第二种转换对象所有权需要手动释放对象(CFRelease(arrayRef);)
- iOS 通讯录基础
- IOS疯狂基础之 通讯录
- IOS疯狂基础之 通讯录
- IOS疯狂基础之AddressBook通讯录
- iOS 基础学习(10)----通讯录
- iOS通讯录
- iOS通讯录
- 通讯录 ios
- iOS通讯录
- iOS通讯录
- IOS通讯录操作总结
- ios 通讯录 中文
- ios 监听通讯录更新
- ios 添加通讯录资料
- ios读取通讯录信息
- ios 操作通讯录联系人
- iOS 通讯录问题
- IOS之通讯录ABAddressBook
- 行业需要学习列表
- windows编程经典书籍
- CocoaPods安装和使用教程
- [第三弹]Python正则表达式基础
- 关于敏捷的一些事儿
- iOS 通讯录基础
- maven 错误收集snapshotRepository
- GCC和G++的区别
- 数据库最全工具类SqlHelper
- 【Android开发经验】Cannot generate texture from bitmap异常的解决方案
- C标准库时间函数
- JAVA 基本数据类型与 二进制转换
- ubuntu12.04的安装,开机界面burg美化,chrome的安装等入门操作
- 体验hibernate