設定
Author と Book の間の次の関係を想像してください。
[Author] -- has many --> [Book]
restkit を使用して、Author モデルと Book モデルがあり、Author と Book の関係を次のように作成します。
[authorMapping hasMany:@"books" withMapping:booksMapping];
著者のプロパティから著者の本にアクセスできるようになりました。
@property (strong, nonatomic) NSSet *books;
ここまでは順調ですね。同様に、本のプロパティを介して本の著者にアクセスしたいと思います。
@property (weak, nonatomic) Author *author;
問題
ここから問題が始まります。この逆の関係を実現するために、次を追加しました。
[booksMapping hasOne:@"author" withMapping:authorMapping];
これにより、プログラムが終了するまで、各マッピングが相互に再帰的に呼び出します。全然ダメ。ドキュメントを調べると、hasOne/Many:withMapping: メソッドは単に mapKeyPath:toRelationShip:withMapping: を呼び出しているだけなので、実際には代替手段はありません。さらに、次のようにマッピングを追加します。
[bookMapping mapKeyPath:@"author" toAttribute:@"author"];
明らかに、マッピングを作成するだけで、実際に Author オブジェクトを Book の author プロパティにマップするわけではありません。
質問
CoreData ではなく RestKit を使用して、2 つ以上のモデル間に逆の 1 対多の関係を作成するにはどうすればよいですか?