设置 - 使用RestKit,以及将数据存储在CoreData存储中的能力。
我正在尝试执行两个单独的GET操作:
问题/:issueId ==>这将返回一个Issue对象,假设存在具有该ID的对象。 问题/:issueId / comment ==>这将返回Comment对象,属于与issueId匹配的问题。
因此,对于第一次通话,这只是一个问题。如果我在URL上传入额外的参数,它只会返回注释。否则,它不会。当然,如果我确实要求它,那么创建对象就好了,所有对象都在我的核心数据存储中正确连接。
我正在映射的对象如下所示:
@interface Issue : NSManagedObject
@property (nonatomic) int32_t issueId;
@property (nonatomic, retain) NSSet* comments;
// many other fields not shown.
@end
@interface Comment: NSManagedObject
@property (nonatomic) int32_t commentId;
// many other fields not shown.
@end
问题有一组评论。评论不知道他们自己的问题。
所以,我所要做的就是让这两个调用都成为可能。
例如,在我们的网址中,说“issueId”是12345.因此,如果我对http://example.com/issue/12345进行一次调用,我希望将数据写入我的CoreData商店。 (这很棒,顺便说一句)。我接下来要发生的是调用“http://example.com/issue/12345/comments”,然后将这些注释写入CoreData存储,并连接到issue-12345,已经存在。那是我遇到麻烦的部分。
如果有人可以就此提供指导,我真的很感激。
答案 0 :(得分:0)
在正式回购中阅读this issue后,我会按照以下步骤进行操作。
在您的核心数据模型中添加反向关系Comment -> Issue
,以便您的Comment
界面看起来像
@interface Comment: NSManagedObject
@property (nonatomic, retain) Issue * issue;
@property (nonatomic) int32_t commentId;
// many other fields not shown.
@end
并强制要求该关系。
现在你必须设置添加该关系的映射,例如
[issueMapping addRelationshipMappingWithSourceKeyPath:@"comments"
mapping:[self commentMapping]];
如果我的理解是正确的,RestKit
应该填充两个关系(一对多Issue -> Comment
及其反转)。