我从我无法控制的网络服务导入JSON响应。此响应包含我映射到Show
实体的元素,该实体在同一JSON中具有多个相关Artwork
个对象。
我通过userinfo键建立了这种关系,而且效果很好。我的问题是JSON中的图稿元素不包含唯一的ID:
{
Filetype = jpg;
Id = "-1036406380";
Offset = 2;
Rating = 1;
Type = 3;
}
可能有多个元素具有相同的Id
。如果它们已经存储在CoreData中,这将导致MagicalRecord无法识别这些元素。
我的解决方案是在实体上引入一个名为uniqueArtworkID的新字段。该字段是由ID,Offset和Type连接的字符串。
最后问题: 我可以在代码中如何或在什么时候创建uniqueArtworkID,以便MagicalRecord能够选择它作为Artwork实体的“主要”键?
编辑:
我发现我可以覆盖NSManagedObject子类中的- (BOOL) MR_importValuesForKeysWithObject:(id)objectData
来生成和设置唯一ID。更进一步,但这并没有解决原始JSON数据不包含该唯一键并检查现有对象失败的问题,导致重复的条目。
答案 0 :(得分:1)
通过删除MagicalRecord并直接使用Core Data API解决。