Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios MagicalRecord:修改相关对象的属性_Ios_Json_Core Data_Relationship_Magicalrecord - Fatal编程技术网

Ios MagicalRecord:修改相关对象的属性

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; } 可

我正在从我无法控制的Web服务导入JSON响应。这个响应包含我映射到一个
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解决