0

Parse でオブジェクトをリレーションに追加しようとしていますが、コードはエラーなしで実行されますが、リレーションはバックエンドに表示されないため、オブジェクトは保存されませんでした。

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は再確認され、正しいものです。

4

1 に答える 1

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;
}];
于 2014-12-07T00:48:38.727 に答える