UITableViewCell objectForKey

时间:2014-02-20 18:53:08

标签: iphone objective-c uitableview parse-platform

我正在将数据加载到NSArray中以帮助填充我的表视图。

(void)viewDidLoad
{
[super viewDidLoad];

PFQuery *query = [PFQuery queryWithClassName:@"UserPhoto"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error) {
        NSLog(@"Successfully retrieved %d videos.", objects.count);
        for (PFObject *object in objects) {
            NSArray *videos = [NSArray arrayWithObjects:object, nil];
            NSLog(@"Video Details: %@", videos);
        }
    } else {
        // Log details of the failure
        NSLog(@"Error: %@ %@", error, [error userInfo]);
    }
}];

[self.tableView reloadData];

单个视频的详细信息如下所示:

"<UserPhoto:ifb0vYa8x6:(null)> {\n    ACL = \"<PFACL: 0xb3645a0>\";\n    imageFile = \"<PFFile: 0xb2d8ef0>\";\n    title = \"\";\n    user = \"<PFUser:zEwPBaCg7x>\";\n}"

然后我试图抓住@&#34; title&#34;的objectForKey。并将其加载到我的UITableViewCell标签中,但它似乎不起作用:

pragma mark - 表视图数据源

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [recipes count];
}


- (UITableViewCell *)tableView:(UITableView *)tableViews cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableViews dequeueReusableCellWithIdentifier:CellIdentifier];

// Configure the cell...
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

UILabel *recipeNameLabel = (UILabel *)[cell viewWithTag:101];
recipeNameLabel.text = [[recipes objectAtIndex:indexPath.row ] objectForKey:@"title"];

return cell;
}

我的标签&#34; recipeNameLabel&#34;没有持有标题的任何数据。有谁知道什么是错的?

1 个答案:

答案 0 :(得分:1)

你没有说出错误/观察到的错误,但是findObjectsInBackgroundWithBlock:是一个异步调用,所以你应该调用[self.tableView reloadData];是回调块,而不是在方法调用之后(实际上是在回调完成之前运行。)

在您要显示任何数据之前重新加载表格。

此外,查看对象日志,title = \"\";表示标题为空字符串...