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