我正在尝试实现一个searchResultsTableView
,它将根据用户的搜索重新加载表。在numberOfRowsInSection
函数(据我所知,该函数引发了异常)中,我具有以下内容:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == self.tableView) {
return self.objects.count;
} else {
NSLog(@"The count of self.searchresults is %i", self.searchResults.count); //Shows as non-zero
return self.searchResults.count;
}
}
我感到困惑的是,我在
return
语句之前设置了一个断点,并且我知道根据NSLog我得到的非零结果。返回非零数字后,立即引发异常,并且得到异常“索引0超出空数组的界限”我究竟做错了什么?
我还确保仅手动重新加载表,因此在
shouldReloadTableForSearchString
中,我具有以下方法:- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
if (searchString.length > 3){
[self.searchResults removeAllObjects];
PFQuery *query = [PFUser query];
[query whereKey:@"username" containsString:searchString];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (error){
NSLog(@"There is an error");
} else {
[self.searchResults addObjectsFromArray:objects];
NSLog(@"self.resultResults count %i", self.searchResults.count);
NSLog(@"The objects are %@", self.searchResults);
[self.searchDisplayController.searchResultsTableView reloadData];
}
}];
}
return NO;
}
谢谢!
最佳答案
看来您的应用没有崩溃
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
检查您在哪里调用objectAtIndex:方法,并查看是否对无效索引进行了调用。
关于ios - 非空数组超出范围错误-怎么回事?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21422809/