誰かが私を助けてくれることを願っています。検索バーを実装しましたが、本来の方法で結果をフィルタリングします。問題は、フィルター処理された結果から選択すると、元の配列から選択されることです。私が読んだことから、1 つのアプローチは、フィルター処理された配列からすべてのアイテムを削除し、選択したアイテムを追加することです。もう 1 つの方法は、検索条件に一致しないすべてのアイテムを削除することです。
問題は、何時間も検索したにもかかわらず、これを行う方法がわからないことです。正しい方向への助けや指針に感謝します。
これが私のコードです:
(void)viewDidLoad
{
[super viewDidLoad];
self.tableView.scrollEnabled = YES;
categories = [NSArray arrayWithObjects:
@"Other",
@"Breakfast",
@"Chemist",
@"Computer",
@"Dinner",
@"Drinks",
@"Entertainment",
@"Fuel",
@"Groceries",
@"Haircut",
@"Hotel",
@"Internet",
@"Laundry",
@"Lunch",
@"Meals",
@"Medical",
@"Parking",
@"Snacks",
@"Stationery",
@"Taxis",
@"Telephone",
@"Transport",
@"Travel Taxes",
nil];
self.allCatgeories = categories;
[self.tableView reloadData];
}
と
(void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
NSPredicate *resultPredicate = [NSPredicate
predicateWithFormat:@"SELF contains[cd] %@",
searchText];
self.searchResults = [self.allCatgeories filteredArrayUsingPredicate:resultPredicate];
}