J'ai ce code pour créer un tableau d'images à afficher sur une vue. La plupart des pages dans ma vue auront 20 images (dans des colonnes de 5, rangées de 4), mais j'ai réellement 43 images et quand mon tableau d'images contient le final 3, j'obtiens une exception quand sur la 4ème itération de l'intérieur loop, le tableau est vide.Exception hors limites sur NSArray thats vide
- (void)displayImages:(NSMutableArray *)images {
NSMutableArray *keysArray = [[NSMutableArray alloc] initWithCapacity:5];
for (int column = 0; column < 5; column++){
[keysArray addObject:[NSMutableArray arrayWithCapacity:5]];
for (int row = 0; row < 4; row++) {
[[keysArray objectAtIndex:column] addObject:[images objectAtIndex:0]];
[images removeObjectAtIndex:0];
}
}
....
Puis-je contourner ce problème?
Merci.
EDIT:
suite de ce code, est le code qui tire réellement l'image du tableau. Mais le même scénario se produit ... à la quatrième itération, il se bloque.
for (int column = 0; column < 5; column++) {
for (int row = 0; row < 4; row++){
UIButton *keyButton = [UIButton buttonWithType:UIButtonTypeCustom];
keyButton.frame = CGRectMake(column*kKeyGap, row*kKeyGap, kKeySize, kKeySize);
[keyButton setImage:[[keysArray objectAtIndex:column] objectAtIndex:row] forState:UIControlStateNormal];
[keyButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:keyButton];
}
}
[keysArray release];
Je ne peux pas tester images
à ce stade que le tableau est vidé déjà.