У меня есть база данных основных данных, и каждая строка показана в таблице.filterArrayUsingPredicate array не сохранен
У меня есть контроллер поиска, который позволяет пользователю искать по имени или фамилии.
Когда я получаю результаты от 'filterArrayUsingPredicate', я перезаряжаю таблицу контроллера поиска, и все работает нормально. В таблице показаны отфильтрованные результаты.
Когда дело доходит до выбора результата, массив результатов пуст и впоследствии сбой из-за [array atIndex: index path.row] за пределами границ. Массив пуст, заставляя меня думать, что он был выпущен.
Этот код отлично работает на другом экране. я пробовал писать и чистить, строить и все еще происходить - любые идеи?
Ниже мой код
@property (неатомический, сохранить) NSArray * cachedSearchResults;
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"first_name contains[cd] %@ || last_name contains[cd] %@",searchText, searchText];
self.cachedSearchResults = [[self.cachedResults filteredArrayUsingPredicate:predicate]retain];
;
[searchController.searchResultsTableView reloadData];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
PupilManagedObject* selected = nil;
if(tableView == table){
selected = [cachedResults objectAtIndex:indexPath.row];
}else{
selected = [self.cachedSearchResults objectAtIndex:indexPath.row]; //array is empty at this point
}
}
Запись массива в tableView: numberOfRowsInSection и cellForRowAtIndexPath показывает правильно заполненный массив – Dan