【发布时间】:2014-01-10 10:41:04
【问题描述】:
我需要你的帮助,因为我无法理解这件事。我在 iOS 中使用 Mantle 和 CoreData。
我定义了如下所示的关系:
发表 1:N 评论
当我从我的 REST 服务中提取数据时,我创建了一个包含 NSMutableArray 评论的 Mantle Object Post。这完美无缺。
然后我将它存储在 Core Data 中,这就是我不知道我是否做对了的地方。
[MTLManagedObjectAdapter managedObjectFromModel:post insertingIntoContext:[self getManagedObjectContext] error:&error];
所以我这样做是为了将我的帖子对象存储到核心数据中。核心数据模型有一个名为“post_has_cmets”的关系,它是一种级联的一对多关系。因此,在对象 Post 上,我有“posts_has_cmets”-> 级联,在我的对象“Comment”上,我与“Nullify”有一对一的关系。
Afaik,Core Data 将其视为 NSSet。不过,我要输入的是 NSMutableArray,因为 Mantle 会处理这个问题(至少快速查看它的源代码告诉我的是这样)。
不幸的是,当我使用
从 Core Data 取回对象时Post* post = [MTLManagedObjectAdapter modelOfClass:Post.class fromManagedObject:[[self fetchedResultsController] objectAtIndexPath:indexPath] error:nil];
post 对象上的属性 cmets 是一个空的 NSSet,我在事先插入该东西时遇到了一些错误。我得到的错误:
Core Data: annotation: repairing missing delete propagation for to-many relationship post_has_comments on object [...]
我被卡住了 - 也许我在这里遗漏了一些重要的东西?
我的 Post 类实现了以下静态方法:
+ (NSDictionary *)managedObjectKeysByPropertyKey {
return @{
@"post_id" : @"id",
@"comments" : @"post_has_comments"
};
}
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{
@"post_id" : @"id",
};
}
+ (NSDictionary *)relationshipModelClassesByPropertyKey {
return @{
@"comments" : IHComment.class
};
}
【问题讨论】:
-
你解决了吗?
-
您可以查看我对已接受答案的回复 - 但是,我不知道这在今天是如何适用的,因为这是两年前的事了。
标签: ios objective-c core-data github-mantle