Я пытаюсь реализовать 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
заявлением, и я знаю, что я получаю не -0 результатов, основанных на NSLog. Сразу же после возвращения числа, отличного от 0, исключение исключается, и я получаю исключение «индекс 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;
}
Спасибо!
Что такое код, который получает доступ к массиву? Скорее всего, в 'RowForIndexPath:' – Evan
Добавить контрольную точку исключения. Вкладка «Точки останова», плюс знак внизу. – danh
Я добавил контрольную точку исключения для всех исключений, а также точку останова прямо в 'tableView cellForRowAtIndexPath:'. Я узнал, что 'cellForRowAtIndexPath' фактически не вызывается вообще. Есть ли какой-либо метод tableview, вызываемый по имени 'numberOfRowsInSection'? – daspianist