2014-12-07 69 views
0

我試圖將一個對象添加到Parse中的一個關係中,雖然代碼沒有任何錯誤地執行,但這個關係並沒有出現在後端,因此這個對象沒有保存。PFRelation addObject不會添加關係

PFObject *newContact = [PFObject objectWithClassName:@"Contact"]; 

[newContact saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) { 
    PFQuery *query = [PFQuery queryWithClassName:@"Trip"]; 
    PFObject *trip = [query getObjectWithId:self.parseID]; 

    PFRelation *rel = [trip relationForKey:@"contacts"]; 
    [rel addObject:newContact]; 

    contact.parseID = newContact.objectId; 
}]; 

我也查了,如果PFObject trip是正確的,我回去與相應的ID所需的對象。此外,鑰匙contacts是雙重檢查和正確的。

+0

你永遠保存的關係......你的代碼的那種在某種意義上顛倒...我會輸入一個解釋的答案。 – 2014-12-07 00:37:00

回答

3

問題是你永遠不會保存關係。你在塊內創建PFRelation,向它添加一個對象,並且不要做任何事情......你永遠不會保存它。

相反,嘗試獲取的trip對象和創建節約塊,前的PFRelation

PFQuery *query = [PFQuery queryWithClassName:@"Trip"]; 
PFObject *trip = [query getObjectWithId:self.parseID]; 

PFObject *newContact = [PFObject objectWithClassName:@"Contact"]; 

PFRelation *rel = [trip relationForKey:@"contacts"]; 
[rel addObject:newContact]; 

[newContact saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) { 
    contact.parseID = newContact.objectId; 
}]; 
+0

非常感謝您指出我愚蠢的錯誤!我剛剛在代碼塊中添加了行['save saveInBackground]',所以我不必爲'trip'查詢同步。 – gpichler 2014-12-07 09:35:59

相關問題