首页 > 代码库 > IOS 获取系统通讯录
IOS 获取系统通讯录
进入正题 获取系统通讯录,不想多讲,留下链接http://my.oschina.net/joanfen/blog/140146
通常做法:
首先创建一个ABAddressBookRef类的对象addressBooks,然后获取系统权限,
获取权限的代码:
// 获取系统权限,并获得通讯录内容存入addressBooks。 ABAddressBookRef addressBooks = nil; addressBooks = ABAddressBookCreateWithOptions(NULL, NULL); dispatch_semaphore_t sema = dispatch_semaphore_create(0); ABAddressBookRequestAccessWithCompletion(addressBooks, ^(bool granted, CFErrorRef error){ dispatch_semaphore_signal(sema); }); dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER); dispatch_release(sema); // 获取通讯录中的所有人 CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBooks);
然后创建一个CFArrayRef类的对象allPerson,通过ABAddressBookCopyArrayOfAllPeople(addressBooks)接受adressBooks。
然后在创建一个ABRecordRef类的对象person,但其实他并不是一个真正包含通讯录信息的类,这个ABRecordRef只是一条记录而已。
下一步通过创建的person对象,利用方法:
AB_EXTERN CFTypeRef ABRecordCopyValue(ABRecordRef record, ABPropertyID property);
想要获取什么信息,property就写ABPropertyID这个类型的变量,其实ABPropertyID是一个int32_t类型的变量。
IOS 获取系统通讯录
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。