我尝试从一些教程中了解发生了什么,但不幸的是我没有找到答案。我认为问题可能是我没有IF以防万一我在搜索结果中得到 nil 。
错误是: 'NSRangeException',原因:' * -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'
我使用这种方法:
- (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
编辑: 当我尝试 put if like this
if ([scope isEqualToString:@"All"] || [book.title isEqualToString:scope])
应用程序迷恋不让我按任何东西..