Я пытаюсь заполнить UITableView объектами NSMutableArray, который заполняется из таблицы в Parse. Массив определенно заполнен (я проверил его содержимое с помощью NSLog), но таблица остается пустой. Я пробовал много разных способов, включая следующие:UITableViewCell остается пустым
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
PFObject *postsObject = [postsArray objectAtIndex:indexPath.row];
cell.textLabel.text = [postsObject objectForKey:@"message"];
cell.textLabel.textAlignment = NSTextAlignmentCenter;
if (!cell) {
cell = [[TableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
if (tableView == table) {
cell.textLabel.text = [postsArray objectAtIndex:indexPath.row];
}
return cell;
}
и гораздо проще
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
TableViewCell *cell = [table dequeueReusableCellWithIdentifier:@"Cell"];
cell.messageLabel.text = [NSString stringWithFormat:[postsArray objectAtIndex:[indexPath row]]];
return cell;
}
Кто-нибудь есть какие-нибудь идеи?
Заранее спасибо :)
EDIT:
Мои методы DATASOURCE являются:
- (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return postsArray.count;
}
EDIT # 2:
Мой код, я использую, чтобы заполнить мой массив и reload my tableView
PFQuery *findData = [PFQuery queryWithClassName:@"AllPosts"];
[findData setLimit:1000];
[findData findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (error == nil) {
for (PFObject *object in objects) {
PFObject *post = object[@"content"];
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:post, nil];
postsArray = array;
[table reloadData];
}
} else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Unable To Load" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}
}];
Большое вам спасибо за ваш ответ! Он показывает больше, чем 1 ячейку, но все ячейки показывают «(« не фактическое сообщение ». Я сейчас подкорректирую его и дам вам знать, как я пойду, спасибо снова :) – Dyllan
Извините, что беспокою вас снова, но я не могу получить textLabel, чтобы показывать только контент, который я хочу. Поскольку он поступает из NSMutableArray, он показывает его между скобками и речевыми метками, например («первый пост»), за исключением того, что он находится на нескольких строках. Вы знаете, как оставить это как текст, который мне нужен? – Dyllan
Это потому, что вы печатаете весь массив. Вы должны напечатать первый и единственный член массива в вашем случае, например: 'if (tableView == table) { cell.textLabel.text = [[postsArray objectAtIndex: indexPath.row] firstObject]; } 'Также я думаю, что вы должны вызывать' [table reloadData] 'после окончания цикла' for', а не на каждой итерации. –