我有一个名为Messages的Parse.com类,其中有3列:
- fromUser - Pointer<_User>
- toUser - Pointer<_User>
在我的UITableView中,我正在检索Messages类中的所有对象,其中toUser等于PFUser currentUser。尝试将标签分配给fromUser时出现此错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Key "username" has no data. Call fetchIfNeeded before getting its value.
这是查询的方式:
- (void)retriveMessages {
PFQuery *query = [PFQuery queryWithClassName:@"Messages"];
[query whereKey:@"toUser" equalTo:[PFUser currentUser]];
[query orderByDescending:@"createdAt"];
query.limit = 1000;
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (error) {
NSLog(@"Error: %@ %@", error, error.userInfo);
} else {
// Found messages!
self.messages = objects;
[self.tableView reloadData];
[_message fetchIfNeeded];
NSLog(@"Retrived %d messages", self.messages.count);
}
}];
}
这就是我尝试将标签分配给fromUser-row的方法,它是指向User类的指针:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MessageCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MessageCell" forIndexPath:indexPath];
_message = [_messages objectAtIndex:indexPath.row];
[_message fetchIfNeeded];
PFUser *user = (PFUser*)[_message objectForKey:@"fromUser"];
NSString *nameString = [user username];
cell.nameLabel.text = nameString;
cell.feedDelegate = self;
return cell;
}
最佳答案
为了访问指向@“fromUser”的属性,必须在查找中热切地获取它。将此添加到查询中:
[query includeKey:@"fromUser"];
关于ios - 从PFUser中提取用户详细信息不起作用: key “用户名”没有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30332840/