我正在将数据加载到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标签中,但它似乎不起作用:
- (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;没有持有标题的任何数据。有谁知道什么是错的?
答案 0 :(得分:1)
你没有说出错误/观察到的错误,但是findObjectsInBackgroundWithBlock:
是一个异步调用,所以你应该调用[self.tableView reloadData];
是回调块,而不是在方法调用之后(实际上是在回调完成之前运行。)
在您要显示任何数据之前重新加载表格。
此外,查看对象日志,title = \"\";
表示标题为空字符串...