After a long discussion with @rory, here we come to the correct answer:
-(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];
}
}];
}
The problem is handled by making another query to display current user's normal post and modify QueryForFriend
for a correct query