MyUISearchDisplayController
はを介して非同期検索を実行しますNSOperationQueue
。
NSOperation
ただし、結果テーブルは、呼び出し後約5秒まで視覚的に更新されません[searchDisplayController.searchResultsTableView reloadData]
。
- (BOOL) searchDisplayController:(UISearchDisplayController*)controller shouldReloadTableForSearchString:(NSString*)searchString
{
[searchQueue cancelAllOperations];
NSInvocationOperation *op = [[[CustomSearchOperation alloc] initWithController:controller searchTerm:searchString] autorelease];
[searchQueue addOperation:op];
return NO;
}
私のCustomerSearchOperationは、次のようにtableViewを更新します。
- (void) main
{
// perform search
[searchDisplayController setContents:results];
[searchDisplayController.searchResultsTableView reloadData];
}