gpt4 book ai didi

core-data - 使用 Magical Record 导入数据时避免重复条目

转载 作者:行者123 更新时间:2023-12-03 06:52:30 25 4
gpt4 key购买 nike

我正在使用 Magical Record 来促进核心数据操作。想象一下,我们有一组像这样的 json,并且定义了完全相同的核心数据模型:

{
"cars": [
{
"name": "Corolla",
"brand": {
"name": "Toyota"
},
"price": 20000
},
{
"name": "Pirus",
"brand": {
"name": "Toyota"
},
"price": 50000
},
{
"name": "RAV-4",
"brand": {
"name": "Toyota"
},
"price": 30000
},
{
"name": "Golf",
"brand": {
"name": "VW"
},
"price": 40000
},
{
"name": "Polo",
"brand": {
"name": "VW"
},
"price": 20000
}
]
}

现在,如果我们使用 Magical Record 辅助方法:

- (BOOL) MR_importValuesForKeysWithObject:(id)objectData;

+ (id) MR_importFromObject:(id)data;

它将作为 5 个 Car 条目和 5 个 Brand 条目导入。

但是,在我们的核心数据模型中,汽车品牌关系是多对多关系,并且品牌的名称属性应该是唯一的,因此我预计有 5 个汽车条目和 2 个品牌条目(丰田和大众)。

我的问题是如何在使用核心数据导入时保持数据的唯一性。这是我可以在核心数据模型中定义的东西,比如唯一属性吗?或者我需要重写 Magical Record 的导入方法吗?

最佳答案

您需要告诉 MagicalRecord 唯一标识符是什么。在您的情况下,您没有唯一的 ID,但您可以使用 name 属性。

假设您有一个与 Brand NSManagedObject 存在关系的 Car NSManagedObject,则必须将 latedByAttribute 设置为 name 与用户信息字典中的 Brand 的关系。

完成此操作后,MagicalRecord 将查找具有属性 name 的任何记录,并使用适当的记录(如果已存在),或者根据需要创建一个记录。

这意味着您不必使用类别类覆盖 important 。

如果您需要更多信息,请告诉我。

关于core-data - 使用 Magical Record 导入数据时避免重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14085666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com