你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> IOS 通訊錄的模糊查詢

IOS 通訊錄的模糊查詢

編輯:IOS開發綜合

1、首先拿到通訊錄

-(void)ReadAllPeoples

{

[contacts removeAllObjects];

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 = (__bridge NSString*)ABRecordCopyValue(person, kABPersonLastNameProperty);

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

ABMultiValueRef phone = ABRecordCopyValue(person, kABPersonPhoneProperty);

//讀取聯系人信息

for (int k = 0; k

{

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

if (lastname == nil) {

lastname = @"";


}

if (person == nil) {

continue;

}

//此句為存儲結構,contacts為NSMutableArray*

[contacts addObject:@[lastname,personPhone]];


}

}

CFRelease(results);

CFRelease(addressBook);

[self.tableView reloadData];

}

2、對姓名(lastname)和手機號(personPhone)的模糊查詢

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

filterData = [[NSArray alloc] initWithArray:[contacts filteredArrayUsingPredicate:predicate]];

filterData就是查詢到的結果


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved