我需要你的帮助,因为我无法理解这一点。我在 iOS 中将Mantle和 CoreData 一起使用。
我定义了如下所示的关系:
发表 1:N 评论
当我从我的 REST 服务中提取数据时,我创建了一个包含 NSMutableArray 评论的 Mantle Object Post。这完美无缺。
然后我将它存储在 Core Data 中,这就是我不知道我是否做对了的地方。
[MTLManagedObjectAdapter managedObjectFromModel:post insertingIntoContext:[self getManagedObjectContext] error:&error];
所以我这样做是为了将我的帖子对象存储到核心数据中。核心数据模型有一个名为“post_has_comments”的关系,它是一种级联的一对多关系。因此,在对象 Post 上,我有“posts_has_comments”-> 级联,在我的对象“Comment”上,我与“Nullify”有一对一的关系。
Afaik,Core Data 将其视为 NSSet。不过,我要输入的是一个 NSMutableArray,因为 Mantle 会处理这个问题(至少快速查看它的源代码告诉我的内容是这样的)。
不幸的是,当我从核心数据中取回对象时
Post* post = [MTLManagedObjectAdapter modelOfClass:Post.class fromManagedObject:[[self fetchedResultsController] objectAtIndexPath:indexPath] error:nil];
post 对象上的属性评论是一个空的 NSSet,我在事先插入该东西时遇到了很多错误。我得到的错误:
Core Data: annotation: repairing missing delete propagation for to-many relationship post_has_comments on object [...]
我被卡住了-也许我在这里遗漏了一些巨大的东西?
我的 Post Class 实现了以下静态方法:
+ (NSDictionary *)managedObjectKeysByPropertyKey {
return @{
@"post_id" : @"id",
@"comments" : @"post_has_comments"
};
}
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{
@"post_id" : @"id",
};
}
+ (NSDictionary *)relationshipModelClassesByPropertyKey {
return @{
@"comments" : IHComment.class
};
}