iOS9 获取通讯录信息
来源:互联网 发布:淘宝店促销价怎么设置 编辑:程序博客网 时间:2024/06/05 18:24
<pre name="code" class="objc">iOS9 里面 AddressBook Frame 被砍掉了,换成了 Contacts.frame work 。最近写的项目里需要用到通讯录,于是就稍微了研究了下。
WWDC session 223 专门讲的这个框架,如果需要深入了解的话,还是看视频比较好点。
如果只需要获取信息的话,用下面几行代码就够了。至于如何修改,增加已经有人写了 可以参考 http://www.jianshu.com/p/3768b9c65974 里面基本上包含了iOS9的更新内容
如何使用:
1.将你需要获取信息的kEY 都放到一个数组中。<pre name="code" class="objc"> NSArray *keysToFetch = @[[CNContactFormatter descriptorForRequiredKeysForStyle:CNContactFormatterStyleFullName],CNContactPhoneNumbersKey];
// 如果你的Request 中没有包含Key , 但是你后面又用到了该信息。程序就会挂掉。<div><span style="font-variant-ligatures: no-common-ligatures; color: #000000">2.根据你的Key数组生成一个 获取请求 </span><pre name="code" class="objc"> CNContactFetchRequest *request = [[CNContactFetchRequest alloc]initWithKeysToFetch:keysToFetch];这里也可以设置 request 中的 Predicate 来设置筛选要求。不设置的话就是获取全部的信息。
3. 建立一个contactStore 来存放所有的信息
CNContactStore *contactStore = [[CNContactStore alloc]init];
4. 根据Request 将联系人遍历出来就好了。
<pre name="code" class="objc"> NSMutableArray *contactArray = [NSMutableArray array];
[contactStore enumerateContactsWithFetchRequest:request error:nil usingBlock:^(CNContact * _Nonnull contact, BOOL * _Nonnull stop) {
[array addObject:contact];<pre name="code" class="objc">// 像名字这类确定的信息都能直接用点语法输出,但是电话和地址这类可能有多个的就需要从数组中单独的拎出来了。NSArray <CNLabeledValue<CNPhoneNumber *> *> *phoneNumbers = contact.phoneNumbers; CNLabeledValue<CNPhoneNumber *> *firstPhoneNumberInfor = phoneNumbers[0]; CNPhoneNumber *number = firstPhoneNumberInfor.value; NSString *phoneNumber = number.stringValue; NSLog(@"%@%@,%@",contact.familyName,contact.givenName,phoneNumber );
}
0 0
- iOS9 获取通讯录信息
- iOS9通讯录联系人信息读取
- 关于IOS获取本地通讯录信息(包含iOS9.0前后)
- 关于IOS获取本地通讯录信息(包含iOS9.0前后)
- iOS7,iOS8和iOS9获取通讯录联系人
- 获取iPhone通讯录信息
- 获取iPhone通讯录信息
- 获取iPhone通讯录信息
- 获取iPhone通讯录信息
- android获取通讯录信息
- 获取通讯录信息
- IPhone 获取通讯录信息
- IOS 获取通讯录信息
- 获取通讯录联系人信息
- android获取通讯录信息
- Android获取通讯录信息
- 获取手机通讯录信息
- iOS获取通讯录信息
- 解决MysqlWorkbench Export Data时报错:'delayed-insert'=FALSE
- matlab eps
- C/C++ 实现 atoi 函数
- OUTLOOK宏
- Visual Studio 未能解析主引用 该框架版本高于当前目标框架
- iOS9 获取通讯录信息
- Mongodb学习笔记速记(二)
- Java基础编程之打印水仙花数
- 偷取百度音乐。。。
- S中使用sort结合localeCompare实现中文排序实例
- oracle 表空间
- Android WebView通信
- android的四种设计模式
- SHFileOperation出错的问题 重命名错误 只能重命名一个文件