いくつかのチュートリアルで何が起こるかを理解しようとしましたが、残念ながら答えが見つかりません。検索結果にnilが表示された場合に備えて、 IFがなかったことが問題である可能性があると思います。
エラー: 'NSRangeException'、理由: ' * -[__NSArrayM objectAtIndex:]: インデックス 0 が空の配列の境界を超えています'
私はその方法を使用します:
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
//removes previos search result
[[self searchResults]removeAllObjects];
for (Books *book in [self.fetchResultsController fetchedObjects])
{
if([self searchResults] != nil)
{
NSComparisonResult result = [book.title compare:searchText
options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)
range:NSMakeRange(0, [searchText length])];
if (result == NSOrderedSame )
{
[self.searchResults addObject:book];
}
}
}
}
git で私の完全なプロジェクトを見つけることもできます: https://github.com/dennis87/git_bookList
編集: このように入れようとすると
if ([scope isEqualToString:@"All"] || [book.title isEqualToString:scope])
何も押さずにアプリがクラッシュする..