В настоящее время я создаю приложение для iPhone, которое будет отображать данные из NSMutableArray, называемые «историями». Структура массива выглядит так (через NSLog):UITableView Looping Out Data from 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";
})
Мой cellForRowAtIndexPath выглядит следующим образом в настоящее время:
- (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;
}
В настоящее время мой UITableView отображает несколько записей одного и того же элемента (что происходит, чтобы быть окончательный набор в массиве). Как я могу получить его, чтобы успешно пройти через массив и отобразить сообщение следующего элемента в ячейках один за другим.
Заранее спасибо :)
Бенджи
Привет, Dave, Спасибо за полезный пост и 3.0 точки совместимости, по какой-то причине он, похоже, рушится для меня с ошибкой: «*** Завершение приложения из-за неперехваченного исключения« NSRangeException », причина: '** * - [NSCFArray objectAtIndex:]: индекс (2) за пределами границ (2) '" Еще раз спасибо. –
@Benji означает, что у вас есть только 2 элемента в вашем массиве, но tableView запрашивает третью. Убедитесь, что вы возвращаете [количество историй] в свой метод делегирования numberOfRowsInSection. Если да, то убедитесь, что вы не мутируете NSArray за кулисами и добавляете/удаляете из него вещи, не сообщая tableview (вы скажете это, отправив ему сообщение reloadData). –
Дэйв, ты гений, я не вернулся [истории]. Еще раз спасибо и отлично провели день :) –