Насколько я знаю, для iPhone нет API прожектора.
Тебе он не нужен. Вот один из способов сделать это:
- Поместите свои контакты в постоянное хранилище Core Data
- Используйте
NSFetchedResultsController
для управления набором результатов
- Используйте
UISearchDisplayController
, чтобы применить NSPredicate
к набору результатов в реальном времени
Единственный поток, который, как я вижу, вам может понадобиться, - это отдельный поток, чтобы заполнить хранилище основных данных контактами.
Если у вас есть набор результатов с помощью NSFetchedResultsController
, очень легко применить предикат. Например:
if ([self.searchBar.text length]) {
_predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"(myContactName contains[cd] '%@')", self.searchBar.text]];
[self.fetchedResultsController.fetchRequest setPredicate:_predicate];
}
NSError *error;
if (![self.fetchedResultsController performFetch:&error]) {
// handle error...
}
NSLog(@"filtered results: %@", [self.fetchedResultsController fetchedObjects]);
отфильтрует набор результатов [self.fetchedResultsController fetchedObjects]
на лету.