使用关系将Json数据导入核心数据

使用关系将Json数据导入核心数据,json,core-data,relationships,Json,Core Data,Relationships,我有一个包含两个实体的模型: 国家和城市 Country有一个属性“countryname”和一个称为“cities”的“to many”关系属性 城市有一个属性“cityname”和一个“对多”关系属性“countries” 国家与城市之间存在“对多”关系,因为一个国家有一个以上的城市 我能够将这个预先填充好的Json文件导入到我的核心数据中,其中还包含以下关系: [{"CITY":"PARIS","COUNTRY":"FRANCE"}, {"CITY":"NICE","COUNTRY":"F

我有一个包含两个实体的模型:

国家
城市

Country有一个属性“countryname”和一个称为“cities”的“to many”关系属性

城市有一个属性“cityname”和一个“对多”关系属性“countries”

国家与城市之间存在“对多”关系,因为一个国家有一个以上的城市

我能够将这个预先填充好的Json文件导入到我的核心数据中,其中还包含以下关系:

[{"CITY":"PARIS","COUNTRY":"FRANCE"},
{"CITY":"NICE","COUNTRY":"FRANCE"},
{"CITY":"NANCY","COUNTRY":"FRANCE"},
{"CITY":"BERLIN","COUNTRY":"GERMANY"}]
我的问题是,检查应用程序生成的sqlite时,我会在表
COUNTRY
中看到重复的国家,例如,如果我有四个来自法国的城市,我会看到四条记录“France”,而不是一条与这四个城市相关的记录


我不知道如何修复此问题。

每次设置关系检查以查看特定对象是否已存在时。就像迭代每个城市对象时一样,检查上下文中是否已经存在同名的国家/地区如果是,请将其设置为关系,否则创建一个新对象。是的,谢谢你的回答,我已经想到了。在导入的循环中,我提出了一个带谓词的FetchRequest,以查看数据库中是否有特定的国家,如果有,他设置了关系。它现在似乎起作用了。