我试图查询名为UserPhoto的类。它有许多照片,其中包含对用户的字段引用。 但是,当我在背景中找到所有对象时,它只返回一个。
// get currentUserId
NSString *userId = [self.userIds objectAtIndex:indexPath.row];
PFQuery *photoQuery = [PFQuery queryWithClassName:@"UserPhoto"];
[photoQuery includeKey:@"user"];
[photoQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
NSLog(@"Objects: %@", objects);
for (PFObject *photo in objects) {
NSLog(@"%@, %@", [photo objectForKey:@"user"], userId);
if ([[[photo objectForKey:@"user"] objectId] isEqualToString:userId]) {
// turn that photo into ns data
UIImage *profilePicture = [UIImage imageWithData:[[photo objectForKey:@"imageFile"] getData]];
cell.imageArea.image = profilePicture;
cell.nameLabel.text = [[photo objectForKey:@"user"] objectForKey:@"name"];
}
}
}];
编辑:这是在tableView:cellForAtIndexPath:
中我知道它很糟糕,但我现在正在测试它。
答案 0 :(得分:1)
这证明是访问控制列表(ACL)的问题。
在我将照片上传到UserPhoto课程的地方,我还确保上传的照片会收到如下公共阅读权限:
userPhoto.ACL = [PFACL ACLWithUser:[PFUser currentUser]];
[userPhoto.ACL setPublicReadAccess:TRUE];
如果你在ACL部分查看数据浏览器,它可能类似于:
{"*":{"read":true},"fTSp8k4pLQ":{"write":true,"read":true}}
我让用户给自己写入和读取访问权限,但也使用外卡进行公共访问。