Erro do iOS: [__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]
No meu aplicativo eu tento carregar o conteúdo de um URL, armazená-los em um array mutável e mostrá-los em uma visão de tabela. Mas eu não consigo trabalhar, porque toda vez que eu executo o aplicativo esse erro aparece:
*** Terminating app due to uncaught exception 'NSRangeException',
reason: '*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
*** First throw call stack:
(0x34dd088f 0x36d9e259 0x34d2823d 0x316e562f 0x315f09a9 0x313c0c5d 0x313c1b95 0x313c1ae7
0x313c16c3 0xa5cfb 0x33623ec7 0x35387a09 0x35390051 0x33622965 0xa4dc1 0x313a8e33
0x313cd629 0x31391d7d 0x314544dd 0x3139a55d 0x3139a579 0x3139a40b 0x3139a3e7 0x313a8015
0x313a1985 0x3136fc6b 0x3136f70f 0x3136f0e3 0x3439222b 0x34da4523 0x34da44c5 0x34da3313
0x34d264a5 0x34d2636d 0x313a0a13 0x3139de7d 0xa4745 0xa46dc)
terminate called throwing an exception
Eu crio o array que deve preencher a tabela no meu viewDidLoad com:
_videos = [[NSMutableArray alloc] init];
Em seguida, conecto-me ao URL e analiso os dados xml recebidos. Isso funciona exatamente como deveria. Quando uma determinada tag é aberta, crio meus objetos de vídeo e, depois de preenchê-los com dados, adiciono esses objetos à minha matriz com:
[_videos addObject:currentVideo];
Isso parece funcionar também, porque retorna o número correto de vídeos quando
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return _videos.count;
}
é chamado. Mas depois desse ponto o aplicativo trava e eu nem sequer chego ao ponto em que tento preencher minha visão de tabela. A função é assim:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
Video *curVideo = [_videos objectAtIndex:indexPath.row];
static NSString *CellIdentifier = @"CustomCell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
cell.titleLabel.text = [curVideo title];
cell.descLabel.text = [curVideo desc];
return cell;
}
O que estou fazendo errado?
desde já, obrigado