在我发布的查询中向大家问好,我试图检索所有与PfUserCurrent共享友谊的人的帖子和PfUserCurrent。
该查询工作正常,但我只有一个问题,该查询向我显示了CurrentUser之友的所有帖子,但没有显示CurrentUser发送的帖子...我尝试了几次尝试,但无法解决..你能解释我错了吗?
-(void)QueryForPost {
PFQuery *QueryForFriend=[PFQuery queryWithClassName:@"Friendships"];
[QueryForFriend whereKey:@"To_User" equalTo:[PFUser currentUser]];
[QueryForFriend whereKey:@"STATUS" equalTo:@"Confirmed"];
PFQuery *QueryYES = [PFQuery queryWithClassName:@"Post"];
[QueryYES whereKey:@"FLASH_POST" equalTo:[NSNumber numberWithBool:YES]];
[QueryYES whereKey:@"UserSelected" equalTo:[PFUser currentUser]];
PFQuery *QueryNO = [PFQuery queryWithClassName:@"Post"];
[QueryNO whereKey:@"FLASH_POST" equalTo:[NSNumber numberWithBool:NO]];
[QueryNO whereKey:@"Author" matchesKey:@"From_User" inQuery:QueryForFriend];
PFQuery *query = [PFQuery orQueryWithSubqueries:@[QueryYES,QueryNO]];
[query includeKey:@"Author"];
[query orderByDescending:FF_CREATEDAT];
[query findObjectsInBackgroundWithBlock:^(NSArray *results, NSError *error) {
if (!error) {
NSLog(@"%@", results);
ArrayforPost = [[NSMutableArray alloc] init];
for (PFObject *object in results) {
[ArrayforPost addObject:object];
}
[self.FFTableView reloadData];
}
}];
}
最佳答案
经过与@rory的长时间讨论,我们得出了正确的答案:
-(void)QueryForPost {
PFQuery *QueryForFriend=[PFQuery queryWithClassName:@"Amicizie"];
[QueryForFriend whereKey:@"A_User" equalTo:[PFUser currentUser]];
[QueryForFriend whereKey:@"STATO" equalTo:@"Confermato"];
[QueryForFriend includeKey:@"Da_User"];
PFQuery *QueryYES = [PFQuery queryWithClassName:@"Post"];
[QueryYES whereKey:@"FLASH_POST" equalTo:[NSNumber numberWithBool:YES]];
[QueryYES whereKey:@"Scelti" equalTo:[PFUser currentUser]];
PFQuery *normalPostByFriends = [PFQuery queryWithClassName: @"Post"];
[normalPostByFriends whereKey: @"FLASH_POST" equalTo: [NSNumber numberWithBool: NO]];
[normalPostByFriends whereKey: @"Utente" matchesKey:@"Da_User" inQuery:QueryForFriend];
PFQuery *normalPostByUser = [PFQuery queryWithClassName:@"Post"];
[normalPostByUser whereKey: @"FLASH_POST" equalTo: [NSNumber numberWithBool: NO]];
[normalPostByUser whereKey: @"Utente" equalTo: [PFUser currentUser]];
PFQuery *query = [PFQuery orQueryWithSubqueries:@[QueryYES,normalPostByFriends,normalPostByUser ]];
[query includeKey:@"Author"];
[query orderByDescending:FF_CREATEDAT];
[query findObjectsInBackgroundWithBlock:^(NSArray *results, NSError *error) {
if (!error) {
NSLog(@"%@", results);
ArrayforPost = [[NSMutableArray alloc] init];
for (PFObject *object in results) {
[ArrayforPost addObject:object];
}
[self.FFTableView reloadData];
}
}];
}
通过进行另一个查询以显示当前用户的正常帖子并修改
QueryForFriend
以获取正确的查询来解决该问题。关于ios - Parse.com查询PFUser CurrentUser,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19734814/