RestKit マッピングに接続を追加しようとしていますが、成功しません。
私のJSONは次のとおりです。
{
parent: {
token: "token"
title: "title",
description: "description",
child_id: 1
}
}
私の CoreData スキームでは、Parent
ManagedObject がキー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オブジェクトマッピング関係- これはすでにここで回答されていますが、解決策は私には奇妙に見えます. これがこれを行う唯一の方法ですか?