0

RestKit マッピングに接続を追加しようとしていますが、成功しません。

私のJSONは次のとおりです。

{
  parent: {
    token: "token"
    title: "title",
    description: "description",
    child_id: 1
  }
}

私の CoreData スキームでは、ParentManagedObject がキーChildの下にリレーションを持つchild(およびその逆) と定義しています。CoreData にParent対応するオブジェクトが既に存在する場合、マッピングが行われるため、問題はありません。Child

これを解決するために、Web 上のいくつかのリンクとディスカッションをたどりましたが、どれも機能しません。child_idプロパティを追加することなく、これを行う正しい方法は何ですかParent(これを行ったと主張する人もいますが、私には間違っているように見えます)。

このマッピングがあると仮定します:

- (RKEntityMapping *)parentResponseMapping {
    RKEntityMapping *mapping = [RKEntityMapping mappingForEntityForName:@"Parent" inManagedObjectStore:[self myStore]];
    [mapping addAttributeMappingsFromArray:@[@"title", @"description"]];
    mapping.identificationAttributes = @[@"token"];
    return mapping;
}

最初に、次のように接続を追加しようとしました:

NSEntityDescription *parentEntity = [NSEntityDescription entityForName:@"Parent" inManagedObjectContext:[self myContext]];
NSRelationshipDescription *childRelationship = [parentEntity relationshipsByName][@"seller"];
RKConnectionDescription *connection = [[RKConnectionDescription alloc] initWithRelationship:childRelationship keyPath:@"child_id"];

[mapping addConnection:connection];

child_idしかし、有効な属性ではないというエラーが発生しました(これはchild_id、スキームにプロパティを追加しようとした場所ですが、これも面倒なようで、機能しませんでした)。

また、次の方法で接続を追加しようとしました:

[addConnectionForRelationship:@"child" connectedBy:@"child_id"]

しかし、これもうまくいきませんでした。

いずれにせよ、これらのメソッドはどちらも子マッピングを無視します。

これを達成する正しい方法は何ですか?

EDIT :外部キーとのRestKitオブジェクトマッピング関係- これはすでにここで回答されていますが、解決策は私には奇妙に見えます. これがこれを行う唯一の方法ですか?

4

1 に答える 1