我从我不控制的web服务导入JSON响应。此响应包含我映射到Show
实体的元素,该实体具有相同JSON中的多个相关Artwork
对象。MagicalRecord:修改相关对象的属性
我通过userinfo键建立关系,这很好。我的问题是,在JSON作品元素不包含一个唯一的ID:
{
Filetype = jpg;
Id = "-1036406380";
Offset = 2;
Rating = 1;
Type = 3;
}
可能有相同的Id
多个元素。这将导致MagicalRecord不识别这些元素,如果它们已经存储在CoreData中。
我的解决方案是在名为uniqueArtworkID的实体上引入一个新字段。该字段将由ID,偏移量和类型连接起来。
最后问题: 如何或在代码中的哪一点我可以创建uniqueArtworkID,以便MagicalRecord能够选择它作为Artwork实体的“主”键?
编辑: 我发现我可以覆盖我的NSManagedObject子类中的- (BOOL) MR_importValuesForKeysWithObject:(id)objectData
来生成和设置唯一的ID。更近一步,但这并不能解决原始JSON数据不包含该唯一键并检查现有对象失败的问题,从而导致重复条目。