在 searchBar 中,我有以下代码
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { [searchBar resignFirstResponder]; self.filteredResults = [[NSMutableArray alloc] init]; NSPredicate* predicate = [NSPredicate predicateWithFormat:@"(%K == %@)", field1, field2]; self.filteredResults = (NSMutableArray *)[originalArray filteredArrayUsingPredicate:predicate]; }
编辑:
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar { originalArray = [[NSArray alloc] initWithContentsOfFile:path]; 返回是; }
在我第二次运行谓词时,程序在消息中的分配处self.fiteredResults
崩溃searchBarSearchButtonClicked:searchBar
。如果我包含[self.filteredResults removeAllObjects]
,那么程序会在那里崩溃,所以它被删除了,但在第二次执行搜索时它仍然无法运行。此代码中的任何内容是否会导致崩溃,或者我应该寻找其他地方吗?提前致谢。