打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
IOS 通讯录的模糊查询

1、首先拿到通讯录

-(void)ReadAllPeoples

{

[contactsremoveAllObjects];

ABAddressBookRef addressBook =ABAddressBookCreateWithOptions(nil,nil);

dispatch_semaphore_t sema =dispatch_semaphore_create(0);

ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted,CFErrorRef error)

{

dispatch_semaphore_signal(sema);

});

dispatch_semaphore_wait(sema,DISPATCH_TIME_FOREVER);

CFArrayRef results =ABAddressBookCopyArrayOfAllPeople(addressBook);

for(int i =0; i < CFArrayGetCount(results); i++)

{

ABRecordRef person = CFArrayGetValueAtIndex(results, i);

NSString *lastname = (__bridgeNSString*)ABRecordCopyValue(person,kABPersonLastNameProperty);

NSLog(@"lastname:%@",lastname);

ABMultiValueRef phone =ABRecordCopyValue(person,kABPersonPhoneProperty);

//读取联系人信息

for (int k =0; k<="" p="">

{

NSString * personPhone = (__bridgeNSString*)ABMultiValueCopyValueAtIndex(phone, k);

if (lastname == nil) {

lastname =@"";


}

if (person == nil) {

continue;

}

//此句为存储结构,contacts为NSMutableArray*

[contactsaddObject:@[lastname,personPhone]];


}

}

CFRelease(results);

CFRelease(addressBook);

[self.tableViewreloadData];

}

2、对姓名(lastname)和手机号(personPhone)的模糊查询

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self[0] contains [cd] %@||self[1] contains [cd] %@",用户输入的string,用户输入string];

filterData = [[NSArrayalloc] initWithArray:[contactsfilteredArrayUsingPredicate:predicate]];

filterData就是查询到的结果

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ios删除所有联系人信息
ios查看手机通讯录
(1)IOS开发之通讯录权限
iOS开发
【聚焦SEMA2011】通用军团给力?SEMA车展劲爆概念风
内核2.6.38更新2.6.35的地方
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服