Je suis actuellement la construction d'une application iPhone qui affichera des données à partir d'un NSMutableArray appelé "histoires". La structure du tableau ressemble donc (via NSLog):UITableView Looping Out Données de NSMutableArray/NSDictionary
2009-07-20 12:38:30.541 testapp[4797:20b] (
{
link = "http://www.testing.com";
message = "testing";
username = "test";
},
{
link = "http://www.testing2.com";
message = "testing2";
username = "test2";
})
Mon cellForRowAtIndexPath ressemble à ce moment:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
for (NSDictionary *story in stories) {
[cell setTextColor:[UIColor whiteColor]];
[cell setFont: [UIFont systemFontOfSize:11]];
cell.text = [NSString stringWithFormat:[story objectForKey:@"message"]];
}
return cell;
}
Actuellement, mon UITableView affiche plusieurs entrées de l'élément même (qui se trouve être le dernier set dans le tableau). Comment puis-je l'obtenir pour boucler avec succès le tableau et afficher le message de l'élément suivant dans les cellules les unes après les autres.
Merci à l'avance :)
Benji
Salut Dave, Merci pour la poste utile et point de compatibilité 3.0, pour une raison quelconque, il semble s'écraser pour moi avec l'erreur: "*** App terminant en raison de l'exception uncaught 'NSRangeException', raison: '** * - [NSCFArray objectAtIndex:]: index (2) au-delà des limites (2) '" Merci encore. –
@Benji cela signifie que vous n'avez que 2 éléments dans votre tableau, mais le tableauView en demande un troisième. Assurez-vous que vous renvoyez [nombre d'articles] dans votre méthode de délégué numberOfRowsInSection. Si tel est le cas, assurez-vous que vous ne mutez pas le NSArray dans les coulisses et que vous ajoutez/supprimez des éléments sans le dire à la tableview (vous le dites en lui envoyant le message reloadData). –
Dave vous êtes un génie, je ne l'avais pas retourné [les histoires comptent]. Merci encore et bonne journée :) –