在获取其值之前解析调用 fetch
Parse call fetch needed before getting its value
我是 objective c 的新手,我正在使用 parse.com 作为社交媒体应用程序的数据库。我想要做的是从我的 POST table 中获取用户的 post。我正在使用指针从我的 USER table 获取用户名,这很好,正如您将在下面的代码 posted 中看到的那样,但是当我在将 UILabel 分配给 post 的用户,我仍然收到此错误 "Key "Story“没有数据。在获取其值之前调用 fetchIfNeeded。”感谢您提供的任何帮助,并提前感谢您,如果我无论如何都没有说清楚,我会更乐意扩展任何内容。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {
if (indexPath.section == self.objects.count) {
UITableViewCell *cell = [self tableView:tableView cellForNextPageAtIndexPath:indexPath];
return cell;
}
static NSString *CellIdentifier = @"StoryCell";
NinetiesCell *cell = (NinetiesCell *)[self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
//for the post of the user
PFObject *user = object[@"User"];
[user fetchIfNeeded];
//get username from pointer
cell.userName.text = user[@"username"];
PFObject *story = [object objectForKey:@"Story"];
[story fetchIfNeeded];
cell.story.text = [object objectForKey:@"Story"];
// Configure the cell
NSDate *updated = [object createdAt];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EEE, MMM d, h:mm a"];
cell.dateLabel.text = [NSString stringWithFormat:@"%@", [dateFormat stringFromDate:updated]];
return cell;
}
您的情况更好的选择是修改您的原始查询以包含 "User" 和 "Story" 列,例如
[query includeKey:@"User"];
[query includeKey:@"Story"];
然后当您在 tableView:cellForRowAtIndexPath:
中引用这些列时,它们已经被填充,无需调用 fetchIfNeeded
。
我是 objective c 的新手,我正在使用 parse.com 作为社交媒体应用程序的数据库。我想要做的是从我的 POST table 中获取用户的 post。我正在使用指针从我的 USER table 获取用户名,这很好,正如您将在下面的代码 posted 中看到的那样,但是当我在将 UILabel 分配给 post 的用户,我仍然收到此错误 "Key "Story“没有数据。在获取其值之前调用 fetchIfNeeded。”感谢您提供的任何帮助,并提前感谢您,如果我无论如何都没有说清楚,我会更乐意扩展任何内容。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {
if (indexPath.section == self.objects.count) {
UITableViewCell *cell = [self tableView:tableView cellForNextPageAtIndexPath:indexPath];
return cell;
}
static NSString *CellIdentifier = @"StoryCell";
NinetiesCell *cell = (NinetiesCell *)[self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
//for the post of the user
PFObject *user = object[@"User"];
[user fetchIfNeeded];
//get username from pointer
cell.userName.text = user[@"username"];
PFObject *story = [object objectForKey:@"Story"];
[story fetchIfNeeded];
cell.story.text = [object objectForKey:@"Story"];
// Configure the cell
NSDate *updated = [object createdAt];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EEE, MMM d, h:mm a"];
cell.dateLabel.text = [NSString stringWithFormat:@"%@", [dateFormat stringFromDate:updated]];
return cell;
}
您的情况更好的选择是修改您的原始查询以包含 "User" 和 "Story" 列,例如
[query includeKey:@"User"];
[query includeKey:@"Story"];
然后当您在 tableView:cellForRowAtIndexPath:
中引用这些列时,它们已经被填充,无需调用 fetchIfNeeded
。