MagicalRecord:修改相关对象的属性
Posted
技术标签:
【中文标题】MagicalRecord:修改相关对象的属性【英文标题】:MagicalRecord: modify attribute of related object 【发布时间】:2013-10-03 12:28:03 【问题描述】:我正在从我无法控制的 Web 服务导入 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 数据不包含该唯一键并且检查现有对象失败,从而导致重复条目的问题。
【问题讨论】:
【参考方案1】:通过删除 MagicalRecord 并直接使用 Core Data API 解决。
【讨论】:
以上是关于MagicalRecord:修改相关对象的属性的主要内容,如果未能解决你的问题,请参考以下文章
自定义 NSFetchreqeust - 按子 NSSet 属性排序父实体 [MagicalRecord+Coredata]