我有2个类:帖子类和用户类。我一直在尝试查询Posts类,只显示当前用户的帖子。我是这样做的:
[query whereKey:@"user" containedIn:[PFUser currentUser][@"followings"]];
专栏"以下"是包含当前用户的objectId的数组。我的问题似乎在于密钥@" user"在Posts类中是指向User类的指针并导致此错误:
Error: pointer field user needs a pointer value (Code: 102, Version: 1.2.10)
我应该怎么做?提前谢谢。
编辑1:添加信息
在这里,我提供了有关上述两个类的详细信息:
的ObjectID(字符串)----文本(字符串)----用户(指针)----...
objectId(string)---- username(string)---- followings(users of users' objectId)----...
答案 0 :(得分:8)
我使用 matchesQuery 查询了当前用户的帖子:
PFQuery *userQuery = [PFUser query];
[userQuery whereKey:@"objectId" containedIn:[PFUser currentUser][@"followings"]];
[query whereKey:@"user" matchesQuery:userQuery];
答案 1 :(得分:1)
检查回复有快速版本
//Create an user query
let userQuery = PFUser.query()
//get all PFUser contained in string array
userQuery?.whereKey("objectId", containedIn: PFUser.currentUser()!["FollowArray"]as! [String])
//add subquery
query.whereKey("user", matchesQuery: userQuery!)
答案 2 :(得分:0)
据我所知,你不能在Parse中的数组中有指针,你必须将用户的objectId放在数组“followings”中,然后在数组中搜索该值。那么你可以像这样搜索PFUser:
PFQuery *query = [PFUser query];
[query whereKey:@"objectId" equalTo:@"INSERT-OBJECT-ID-IN-ARRAY"];
PFUser *user = (PFUser *)[query getFirstObject];
答案 3 :(得分:0)
要获取当前用户的帖子,您需要使用用户来自解析的查询,其中您需要传递当前用户
我在这里发布一个小代码片段,可以给你清晰的想法
PFQuery *query = [PFQuery queryWithClassName:@"PostTable"];
[query whereKey:@"user" equalTo:[PFUser currentUser]]; // "user" must be pointer in the post class (table)
[query orderByDescending:@"createdAt"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
for (PFObject *obj in objects) {
NSLog(@"object %@",obj);
}
}
if (error) {
[_delegate gotError:error forTable:TABLE_MEDIA];
}
}];
在上面的代码片段中,它只会为您提供属于您当前用户的帖子。如果您想要任何其他用户的帖子,您应该通过该用户实例查询。
因此,要获得以下用户的帖子,您必须使用指针解析所有关注用户以及上述查询以获取他们的帖子。
要将指针放在Array中的单行中,请参阅下面的代码。
[userClass addObject:userPointer forKey:@"following"];
所以,现在当你获得用户时,你将拥有所有以下用户指针,你可以通过上面的代码片段得到它的帖子