0

我正在从我无法控制的 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 数据不包含该唯一键并且检查现有对象失败,从而导致重复条目的问题。

4

1 回答 1

1

通过删除 MagicalRecord 并直接使用 Core Data API 来解决。

于 2013-10-16T10:10:00.587 回答