NSPrediate を利用してコア データから作成されたテーブルビューを検索する検索バーと検索ディスプレイ コントローラーを使用しています。次のコードは、ほとんどの VC で正常に機能します。ただし、カスタム セルを使用している場合は、検索するたびに結果がゼロになります。
検索用にデータソースを調整する cellforrowatindexpath のコードは次のとおりです。
Items *item;
if (tableView == self.searchDisplayController.searchResultsTableView) {
item = [searchResults objectAtIndex:indexPath.row];
} else {
item
= [self.fetchedResultsController objectAtIndexPath:indexPath];
}
これは VC がカスタム セルを使用する唯一のケースであるため、結果が返されないのはそのためではないかと考えています。
cellforrowatindexpath
これは、カスタム セルを使用するよう指示する行です。
customCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"Cell"];
cell.item = item;
最後に、セル内の値が設定される方法は次のとおりです。
-(void) setItem:(Items *)item{ //open 1
_item = item;
self.nameLabel.text = item.name;
}
検索結果にアイテムが表示されないのは、カスタム セルのせいでしょうか?
注: 検索時に返されるアイテムの数は常にゼロです。