У меня следующая ошибка, которая вызвана фрагментом кода ниже:
ошибка
Завершение работы приложения из-за необработанного исключения «NSRangeException», причина: '- [NSMutableArray objectAtIndex:]: индекс 0 за пределами для пустого массива'
код
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
newsDetailView *NieuwsDetailView = [[newsDetailView alloc] init];
[NewsDetailView setAlleItems:newsItems];
[NewsDetailView setCurrentItemId:indexPath.row];
NSLog(@"%@", newsItems);
[self.navigationController pushViewController:NewsDetailView animated:YES]; // This line gives the error
[NewsDetailView release];
}
У меня есть UITableView с новостями, заполненными онлайн-фидом XML. Я разбираюсь с использованием XMLTouch. Когда я нажимаю на элемент, чтобы перейти к подробному виду, он вылетает.
Я погуглил проблему, но подсчитал все элементы массива в методе - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {}
(возвращаем [newsItems count];
).
Также я записываю полный массив newsItems, прямо над сбоем. И я могу вам сказать, это не пусто.
Так что, если это не количество строк и не пустой массив ... что это?
Одна странная (?) Вещь:
Я всегда получаю эту ошибку: «index 0 за пределами для пустого массива». Даже если бы я щелкнул третью или четвертую строку, это дало бы мне ошибку типа «индекс 3 за пределами для пустого массива» или что-то в этом роде, верно?
** Дополнительная информация в подробном представлении .m **
- (void)viewDidLoad {
[super viewDidLoad];
[self setTitle:@"News"];
}
- (void)loadView {
[super loadView];
NSString *titel;
NSString *bericht;
NSString *datum;
NSString *foto;
titel = [[newsItems objectAtIndex: currentItemId] objectForKey: @"titel"];
bericht = [[newsItems objectAtIndex: currentItemId] objectForKey: @"bericht"];
datum = [[newsItems objectAtIndex: currentItemId] objectForKey: @"datum"];
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2) {
foto = [[newsItems objectAtIndex: currentItemId] objectForKey: @"fotoRetina"];
} else {
foto = [[newsItems objectAtIndex: currentItemId] objectForKey: @"foto"];
}
// Code I've ommited to keep things clear.
// I created a scrollView and put stuff in it, here. If anybody is interested in seeing this I can update this.
}
// No viewWillAppear, setAlleItems or setCurrentItemId methods