2015-09-19 82 views
1

我正在設計一個數據庫。根據文件,當關係數量大於100且有額外的字段時,我必須設計一個Join Table。我設計了這個Join Table有兩個指針值。如何使用iOS訪問parse.com上指針值的字段?

  1. 該指針值指向_User。後來我只需要currUser的行。
  2. 該指針值是另一個表的實體objectId。我的問題是,如何編寫一個查詢來返回此表中的對象queryfortable

比方說:

Table _User 
Table Entity 
Table Join ---> objectId Pointer1(_User) Pointer2(Event) 

這是這樣的:

enter image description here

這是我到目前爲止已經試過:

首先我viewDidLoad試圖得到來自雲端的inviteUser陣列,稍後在queryForTable

PFQuery *query = [PFQuery queryWithClassName:@"Event"]; 
    [query whereKey:@"objectId" containedIn:_inviteList]; 

但我需要訪問_inviteList.objectId這是不可能的!

我試圖使用innerQuerry或關係查詢。但是當我剛剛開始學習解析時,我無法實現這一點。

PFUser *friendPointer = [PFUser currentUser]; 
PFQuery *query2 = [PFQuery queryWithClassName:@"Event"]; 
[query2 whereKey:friendPointer containedIn:_inviteList]; 
return query2; 

這也沒有爲我工作。

PFQuery *innerQuery = [PFQuery queryWithClassName:@"Invite"]; 
    [innerQuery whereKey:@"invitedUser" equalTo:[PFUser currentUser]]; 

    query = [PFQuery queryWithClassName:@"Event"]; 
    [query whereKey:@"user" matchesQuery:innerQuery]; 
    return query; 

我很感激,如果任何人都可以幫我寫這個查詢或重新設計我的表,以訪問該查詢。

回答

3

取悅試試這個代碼,並給我檢查

PFUser *user = [PFUser currentUser]; 
PFQuery *query = [PFQuery queryWithClassName:@"Invite"]; 
[query whereKey:@"invitedUser" equalTo:user]; 
[query includeKey:@"invitedUser"]; 
[query includeKey:@"eventId"]; 
[query orderByDescending:@"updatedAt"]; 
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) 
{ 
    if (error == nil) 
    { 
     for (PFObject *underobject in [objects reverseObjectEnumerator]) 
     { 
      PFUser *user1 = underobject[@"invitedUser"]; 
      NSLog(@"invitedUser is :%@",user1); 
     } 
    } 
}]; 
+0

感謝隊友,現在我明白了在解析指針的使用。 – Bernard