2016-10-07 18 views
1

現在、1つのクラス(写真)を使用してデータを取得するParseクエリが対象cにあります。目的C 2つのクラスを使用した照会結果の比較

PFQuery *photosFromUsersQuery = [PFQuery queryWithClassName:@"photo"]; 
[photosFromUsersQuery whereKeyDoesNotExist:@"type"]; 
[photosFromUsersQuery whereKeyExists:kESPhotoPictureKey]; 
[photosFromUsersQuery whereKey:@"createdAt" greaterThanOrEqualTo:sevenDaysAgo]; 

PFQuery *videosFromUserQuery = [PFQuery queryWithClassName:self.parseClassName]; 
[videosFromUserQuery whereKeyExists:@"type"]; 
[videosFromUserQuery whereKey:@"createdAt" greaterThanOrEqualTo:sevenDaysAgo]; 

PFQuery *query = [PFQuery orQueryWithSubqueries:[NSArray arrayWithObjects:photosFromUsersQuery, videosFromUserQuery, nil]]; 

[query includeKey:kESPhotoUserKey]; 
[query orderByDescending:@"createdAt"]; 

ここで、両方のクラスのポインタである第2クラス(ユーザー)を使用する必要があります。
上記のクエリのデータをフィルタリングして、ユーザーがパブリックプロファイルを持つ場所のデータのみを表示したいとします。
ユーザークラスには、Publicという名前の列があり、PublicまたはPrivateの値を含んでいます。

私は多くのアプローチを試みましたが、それほど効果がありませんでした。
この作業を手伝ってください。

ありがとうございました

答えて

0

私はあなたがmatchesQueryオプションを探していると思います。私は多くのobjcをしませんが、それはこのように見えるはずです。

PFQuery *photosFromUsersQuery = [PFQuery queryWithClassName:@"photo"]; 
[photosFromUsersQuery whereKeyDoesNotExist:@"type"]; 
[photosFromUsersQuery whereKeyExists:kESPhotoPictureKey]; 
[photosFromUsersQuery whereKey:@"createdAt" greaterThanOrEqualTo:sevenDaysAgo]; 

PFQuery *videosFromUserQuery = [PFQuery queryWithClassName:self.parseClassName]; 
[videosFromUserQuery whereKeyExists:@"type"]; 
[videosFromUserQuery whereKey:@"createdAt" greaterThanOrEqualTo:sevenDaysAgo]; 

PFQuery *query = [PFQuery orQueryWithSubqueries:[NSArray arrayWithObjects:photosFromUsersQuery, videosFromUserQuery, nil]]; 

PFQuery *userQuery = [PFQuery queryWithClassName:@"User"] 
[userQuery whereKey:@"privacy" equalTo:@"Public"] 
[query whereKey:@kESPhotoUserKey matchesQuery: userQuery] 
[query orderByDescending:@"createdAt"]; 
+0

この結果はゼロです。 – user6849803

関連する問題