我使用parse.com作为数据库,我在单元格中需要的数据似乎正确地传输到nsarray,虽然我无法在我的表中显示它。
这是查询数据库的方法。
- (PFQuery *)queryForTable {
PFQuery *exerciciosQuery = [PFQuery queryWithClassName:@"ExerciciosPeso"];
[exerciciosQuery whereKey:@"usuario" equalTo:[PFUser currentUser]];
[exerciciosQuery includeKey:@"exercicio"];
// execute the query
_exerciciosArray = [exerciciosQuery findObjects];
for(PFObject *o in _exerciciosArray) {
PFObject *object = o[@"exercicio"];
NSLog(@"PFOBJECT %@", object);
NSLog(@"%@", o);
}
NSLog(@"%@", _exerciciosArray);
return exerciciosQuery;
}
Grupo = Biceps;
descricao = "descricao alternada";
titulo = "Rosca alternada";
Peso = 10;
exercicio = "<Exercicios:Iv2XB4EHSY>";
usuario = "<PFUser:W9ifgHpbov>";
Grupo = Biceps;
descricao = descricao;
titulo = "Puxada Reta";
Peso = 20;
exercicio = "<Exercicios:nmqArIngvR>";
usuario = "<PFUser:W9ifgHpbov>";
Grupo = Biceps;
descricao = "Fazer rosca";
titulo = "Rosca no Pulley";
Peso = 30;
exercicio = "<Exercicios:CXecX4DJiO>";
usuario = "<PFUser:W9ifgHpbov>";
Grupo = Biceps;
descricao = "em pe descricao";
titulo = "Biceps na corda";
Peso = 40;
exercicio = "<Exercicios:6slVOQnj3y>";
usuario = "<PFUser:W9ifgHpbov>";
好的,作为大纲中的淋浴,我的查询成功填充了一个数组,其中包含来自数据库中不同表的四个对象,这些对象是链接的。但我想这并不重要。
我需要做的是填充我的单元格,四行,因为我有四个具有特定键的项目。我想在每行显示,分配给“titulo”和“Peso”的值,似乎都在查询中正确返回。
当我使用下面的代码时,尝试填充for循环中的单元格,它只添加同一项的四行。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
for(PFObject *o in _exerciciosArray) {
PFObject *object = o[@"exercicio"];
cell.textLabel.text = [object objectForKey:@"titulo"];
}
return cell;
}
当我删除for循环并添加以下行时,我的表格中没有任何内容。
object = [_exerciciosArray objectAtIndex:indexPath.row];
cell.textLabel.text = [object objectForKey:@"titulo"];
我已经尝试了很多东西,我确信它很小。请帮忙。
答案 0 :(得分:1)
您正在设置单元格N次,其中N为_exerciciosArray.count
。实际上只显示数组中的最后一项,因为它已分配给所有四个单元格。
改变这个:
for(PFObject *o in _exerciciosArray) {
PFObject *object = o[@"exercicio"];
cell.textLabel.text = [object objectForKey:@"titulo"];
}
到此:
PFObject *o = _exerciciosArray[indexPath.row];
PFObject *object = o[@"exercicio"];
cell.textLabel.text = object[@"titulo"];
您需要根据传递给方法的indexPath
来提取不同的对象。目前你完全无视这个论点。