私はあなたをもっと良くします。この例では、ユーザーの入力に応じて検索します。データが非常に大きい場合は、- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
当初の計画どおりに実装することをお勧めします。残念ながら、2番目の配列が必要ですが、テーブルでその周りをコーディングするのは簡単です。
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
if(searchText.length == 0)
{
isFiltered = FALSE;
}
else
{
isFiltered = true;
if (filteredTableData == nil)
filteredTableData = [[NSMutableArray alloc] init];
else
[filteredTableData removeAllObjects];
for (NSString* string in self.masterSiteList)
{
NSRange nameRange = [string rangeOfString:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)];
if(nameRange.location != NSNotFound)
{
[filteredTableData addObject:string];
}
}
}
[self.tableView reloadData];
}
次に、変数がYESに設定されている場合に、デリゲートメソッドを更新してfilteredTableData
、通常の配列ではなく配列のデータを表示します。isFiltered