【问题标题】:Perfecting my MagicalRecord import完善我的 MagicalRecord 导入
【发布时间】:2013-03-11 10:10:32
【问题描述】:

对,只是整理一下这个问题,希望能找到答案。

我一直在关注这个博客来让我的导入工作。

http://www.cimgf.com/2012/05/29/importing-data-made-easy/

当 JSON 在表单中时,我设法让导入工作完美......

[
    {
        Name: "John Smith",
        Id: 123,
        Company:
        {
            Name: "Apple",
            Id: 1
        }
    }
]

即当 JSON 包含实际对象时。

导入将找到对象并更新现有对象,而不是创建新对象。

但是,我拥有的一些 JSON 格式...

[
    {
        Name: "John Smith",
        Id: 123,
        CompanyID: 1
    }
]

无论我做什么,它都会产生重复。

请有人告诉我 Magical Record 的用户信息设置是为了让它工作。

【问题讨论】:

  • 我已经为您的问题尝试了一个示例代码,请看看这是否有用。
  • 为什么使用两种不同的 JSON 模型结构。如果这是一种优化并且您知道公司对象已经存在,您可以通过只保留那个“Id”来使用相同的结构?
  • 该示例仅针对此问题,与我的应用程序不同。在我的应用程序中,没有名为 Person 或 Company 的对象。这两种不同的结构与实际应用程序中完全不同的对象相关。我只是想让两者都工作。
  • 这个不用说也可以理解。但我的观点仍然成立。我能够通过遵循一种固定格式来完成这项工作。但没有尝试同时尝试两种结构。
  • 你是如何得到第二种方法的?我在这方面没有任何成功吗?我尝试了各种设置,但没有任何效果。第一种方法很简单。

标签: ios objective-c core-data magicalrecord


【解决方案1】:

感谢您的提问,虽然我已经使用了一段时间,但我能够成功使用 MagicalRecord 的导入功能。我能够为您的问题找到解决方案。

我猜 MagicalRecord 约定将 personID 用于 Person,将 companyID 用于 Company。由于它在我们的控制之下,因此需要注意。如果我错了,请纠正我。从实体的属性中删除下划线后,它就不再崩溃了。

我已经对下面提到的解决方案进行了全面测试,请参阅我使用的demo project code。因此,请随时提出问题。

Company
-------------
companyID (unique) //Removed underscore from the property
companyName
-------------
persons

Person
-------------
personID (unique) //Removed underscore from the property
firstName
lastName
-------------
company

对于这种格式:

{
        Id: 1,
        FirstName: "John",
        LastName: "Smith"
        Company :
        {
            Id: 123
        }
    }
}

以下应为公司关系的userInfo中提供的人

mappedKeyName : Company(用于JSON的key)

relatedByAttribute : companyID(公司实体中的唯一属性名称)

对于这个模型:

{
    Id: 1,
    FirstName: "John",
    LastName: "Smith"
    CompanyId: 123
}

mappedKeyName : CompanyId(用于JSON的key)

relatedByAttribute : companyID(公司实体中的唯一属性名称)

【讨论】:

  • 谢谢。我会在回到我的电脑前进行测试。
  • 现在就回来吧。会让你知道的:D
  • @Fogmeister 遗憾的是,我的解决方案无法像您的那样工作。仍在努力。
  • 好吧,我已经让它与 JSON 中的对象一起工作,但不仅仅是 JSON。我不断收到 lookupKey 错误。不知道现在该去哪里。
  • @Fogmeister 您遇到什么错误?可以讨论一下吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多