2013-12-15 82 views
0

我使用parse.com作爲數據庫,並且單元格中需要的數據似乎已正確傳輸到nsarray,儘管我無法在我的表格中顯示它。使用NSArray/PFQuery中的數據填充tableview單元格

這是查詢數據庫的方法。

- (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」;

比索= 10;

exercicio =「」;

usuario =「」;

Grupo =肱二頭肌;

descricao = descricao;

titulo =「Puxada Reta」;

比索= 20;

exercicio =「」;

usuario =「」;

Grupo =肱二頭肌;

descricao =「Fazer rosca」;

titulo =「Rosca no Pulley」;

比索= 30;

exercicio =「」;

usuario =「」;

Grupo =肱二頭肌;

descricao =「em pe descricao」;

titulo =「Biceps na corda」;

比索= 40;

exercicio =「」;

usuario =「」;

好吧,作爲大綱淋浴,我的查詢成功地填充了一個數組,其中包含來自數據庫中鏈接的不同表的四個對象。但我想這不重要。

我需要做的是填充我的單元格,四行,因爲我有四個項目與特定的鍵。我想顯示每行,分配給「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"]; 

我已經嘗試了很多東西,我確定它是一些小東西。請幫忙。

謝謝。

回答

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傳遞給方法不同的對象。目前你完全忽略了這個論點。

+0

完美!非常感謝。 – ferrojr

相關問題