チュートリアルに従って検索バーを追加しましたが、何らかの理由で検索に結果が表示されません。
注: エラーを回避するために、2 行目に「self tableView」を追加します。多分これが問題ですか?またはIFの問題?
git: https://github.com/dennis87/git_bookList
問題は次のコードにあると思います。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
//cell create
if (nil == cell)
{
UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
if (tableView == self.searchDisplayController.searchResultsTableView)
{
NSLog(@"Configuring cell to show search results");
Books *book = [[self searchResults]objectAtIndex:indexPath.row];
[[cell textLabel]setText:[book title]];
}
else
{
NSLog(@"Configuring cell to show normal data");
Books *book = [[self fetchResultsController]objectAtIndexPath:indexPath];
[[cell textLabel]setText:[book title]];
}
return cell;
}
私は NSlogs を入れてみましたが、この NSLog が印刷されなかったので、問題は IF にあるのでしょうか? 私は何を間違っていますか?
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
NSLog(@"Previous Search Results were removed.");
[self.searchResults removeAllObjects];
for (Books *book in [self.fetchResultsController fetchedObjects])
{
if ([scope isEqualToString:@"All"] || [book.title isEqualToString:scope])
{
NSLog(@"entered");
NSComparisonResult result = [book.title compare:searchText
options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)
range:NSMakeRange(0, [searchText length])];
if (result == NSOrderedSame)
{
NSLog(@"Adding book.title '%@' to searchResults as it begins with search text '%@'", book.title, searchText);
[self.searchResults addObject:book];
}
}
}
}