【问题标题】:Magical Record import with already existing data使用已有数据导入 Magical Record
【发布时间】:2013-03-10 18:17:46
【问题描述】:

我正在尝试使用Magical Record 将数据导入我的CoreData db。

我目前正在处理实体Person

Person 具有 firstNamelastNamepersonID 属性。 (我知道我不需要 idString,我没有在内部使用它,它用于与服务器对话)。

不管怎样,如果我已经有了那个人……

firstName - John
lastName - Smith
personID - 1

然后我下载 JSON...

[
    {
        firstName: John,
        lastName: Doe,
        id: 1
    },
    {
        firstName: Michael,
        lastName: Caine,
        id: 2
    },
    {
        firstName: Angelina,
        lastName: Jolie,
        id: 3
    }
]

我希望导入添加 MichaelAngelina 并将 John Smith 更新为 John Doe,因为它已经存在具有相同的 id 和 personID。

我已经在 id 和 personID 之间设置了 mappedKeyName。

可以这样做吗?我一直在阅读这个博客...http://www.cimgf.com/2012/05/29/importing-data-made-easy/ 关于键名的自动映射等...并想知道我是否可以利用它来做我想做的事?

我已经从博客中阅读了有关 relatedByAttribute 的部分,但我不确定我应该在哪里设置它以及设置什么?

我应该在实体 Person 上设置它吗?还是属性personID?我应该把它设置成什么? “ID”?还是别的什么?

【问题讨论】:

  • 看看“核心数据编程指南”中的Implementing Find-or-Create Efficiently,它描述了一种很好的技术。
  • 我已经在使用这个方法了,谢谢。我想迁移到 Magical Record 以使用他们拥有的“自动导入”方法。

标签: ios objective-c core-data magicalrecord


【解决方案1】:

我不确定您是否在 Core Data 模型的 userInfo 区域中使用了 relatedByAttribute 设置。你在这里的问题中没有提到这一点。我建议你仔细检查一下。澄清一下,它被称为relatedByAttribute,因为您放入值部分的字符串是与实体相关的CoreData 属性,而不是json(或其他对象)数据。所以,检查这两件事,如果还有问题,请在 github 上开一张票,最好有一个有助于描述问题的单元测试。

【讨论】:

  • 感谢您的回答,我确实阅读了有关 relatedByAttribute 的信息,但认为它是用于数据关系的。无论如何,我已经更新了我的问题。谢谢。
  • 我又读了一遍,完全不知道应该在哪里设置relatedByAttribute。这不是实体之间的关系,我只是从 JSON 中导入单个 Person 实体。请让我知道我需要在哪里设置 relatedByAttribute 以及设置什么?不确定我是否应该在实体或属性上设置它以及赋予它什么值。在博客中它只在关系中提到它,但我没有。
  • 在实体上设置它。在设置它以远离数据库命名法时,我避免使用“primaryKey”这个词。不过,您可以将 relatedByAttribute 视为主键。
  • 非常感谢。我会试一试。啊!我现在明白了。再次感谢。
  • 我回答了一个我自己也很感兴趣的类似问题:stackoverflow.com/questions/14595815/…
猜你喜欢
  • 2013-04-24
  • 1970-01-01
  • 2012-12-14
  • 1970-01-01
  • 2012-09-20
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
  • 2014-09-27
相关资源
最近更新 更多