Parse.com получает PFUser от связанного PFObject

Я сохраняю фотографию в Parse как PFObject с [PFUser currentUser] пользователя [PFUser currentUser] качестве одного из своих ключей.

Я хочу показать фотографию в виде таблицы вместе с деталями из этого PFUser. Но когда я пытаюсь получить пользователя – PFUser *user = [self.photo objectForKey:@"user"]; – и затем попытайтесь получить доступ к отображаемому имени пользователя, я получаю следующее исключение:

 Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Key "profilePicture" has no data. Call fetchIfNeeded before getting its value.' 

Однако вызов fetchIfNeeded приводит к сбою таблицы, и учебник AnyPic делает именно то, что я пытаюсь сделать, не используя fetchIfNeeded. AnyPic просто вызывает PFUser *user = [self.photo objectForKey:@"user"]; и все работает.

Я что-то пропустил? Благодаря!

Вот cellForRowAtIndexPath :

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object { static NSString *CellIdentifier = @"Cell"; PhotoCellTest *cell = (PhotoCellTest *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[PhotoCellTest alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier descriptionText:nil userNameText:nil captionText:nil]; } photo = object; PFUser *user = [self.photo objectForKey:@"user"]; PFFile *profilePictureSmall = [user objectForKey:@"profilePicture"]; cell.profilePicPlaceholder.file = profilePictureSmall; return cell; } 

редактировать

Вот где я устанавливаю ключи для PFObject:

 PFObject *photo = [PFObject objectWithClassName:@"Photo"]; [photo setObject:[PFUser currentUser] forKey:@"user"]; [photo setObject:self.photoFile forKey:@"image"]; [photo setObject:[nameField text] forKey:@"itemCaption"]; 

И вот где я устанавливаю ключи для PFUser:

 PFFile *profilePic = [PFFile fileWithData:data]; [[PFUser currentUser] setObject:profilePic forKey:@"profilePicture"]; [[PFUser currentUser] saveInBackground]; 

Когда я user NSLog, я получаю только <PFUser:nOpK5splEX:(null)> { } , но когда я NSLog [PFUser currentUser] , я получаю <PFUser:nOpK5splEX:(null)> { displayName = "XXX"; facebookId = XXX; profilePicture = "<PFFile: XXX>"; username = XXX;} <PFUser:nOpK5splEX:(null)> { displayName = "XXX"; facebookId = XXX; profilePicture = "<PFFile: XXX>"; username = XXX;} <PFUser:nOpK5splEX:(null)> { displayName = "XXX"; facebookId = XXX; profilePicture = "<PFFile: XXX>"; username = XXX;} … Поэтому очевидно, что PFUser неправильно настроен.

Я должен что-то сделать в базе данных, чтобы связать поля пользователя или что-то в этом роде?

Получил это понять – я не использовал includeKey в PFQuery.

После

PFUser *user = [self.photo objectForKey:@"user"];

вы должны позвонить

[user fetchIfNeeded];

Interesting Posts
Давайте будем гением компьютера.