Ios MagicalRecord:修改相关对象的属性
我正在从我无法控制的Web服务导入JSON响应。这个响应包含我映射到一个Ios MagicalRecord:修改相关对象的属性,ios,json,core-data,relationship,magicalrecord,Ios,Json,Core Data,Relationship,Magicalrecord,我正在从我无法控制的Web服务导入JSON响应。这个响应包含我映射到一个Show实体的元素,该实体在同一个JSON中有多个相关的Artwork对象 我通过userinfo键建立了关系,这很好。我的问题是JSON中的artwork元素不包含唯一的id: { Filetype = jpg; Id = "-1036406380"; Offset = 2; Rating = 1; Type = 3; } 可
Show
实体的元素,该实体在同一个JSON中有多个相关的Artwork
对象
我通过userinfo键建立了关系,这很好。我的问题是JSON中的artwork元素不包含唯一的id:
{
Filetype = jpg;
Id = "-1036406380";
Offset = 2;
Rating = 1;
Type = 3;
}
可能有多个元素具有相同的Id
。如果这些元素已经存储在CoreData中,这将导致MagicalRecord无法识别这些元素
我的解决方案是在实体上引入一个名为uniqueArtworkID的新字段。此字段将是一个由ID、偏移量和类型连接的字符串
最后一个问题是:
如何或在代码中的什么位置创建uniqueArtworkID,以便MagicalRecord能够将其作为Artwork实体的“主键”拾取
编辑:
我发现我可以在我的NSManagedObject子类中重写
-(BOOL)MR_importValuesForKeysWithObject:(id)objectData
,以生成和设置唯一id。更进一步,但这并不能解决原始JSON数据不包含唯一键并且检查现有对象失败的问题,导致重复条目。通过删除MagicalRecord并直接使用核心数据API解决