设置
想象一下 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 属性。
问题
如何使用 RestKit 而不是 CoreData 在两个或多个模型之间创建反向一对多关系?