【问题标题】:Alamofire object mapper with core data具有核心数据的 Alamofire 对象映射器
【发布时间】:2018-02-22 10:12:08
【问题描述】:

我正在编写一个应用程序,其中有一个显示用户列表的仪表板。所以我创建了一个名为“用户”的实体。对于映射,我使用的是 Alamofire 对象映射器。

场景
在调用 API 之前,我正在检查网络是否可用。如果不是,我从核心数据中获取实体并显示保存的结果。如果是,我会调用 API 并从 API 获取对象并将其保存到我的上下文中。

问题
现在,当我从 API 获取对象时,我将响应保存在 NSManagedObjectContext 中,并将其附加到我的“用户”实体中已经存在的 NSManagedObjects。我想要的是,如果用户已经存在于实体中,我不不想再次将该用户对象保存在我的实体中。所以在第一次调用中,我在数据库中有 20 个对象,第二次调用后,计数增加到 40,依此类推。我不希望这样。我如何做到这一点?

【问题讨论】:

  • @TomHarrington 我似乎找不到确切的答案。这就是我在这里发布它的原因。请您在链接中提供我。
  • @TomHarrington 虽然我已经解决了这个问题,但我只是想知道这是否是最好的方法。
  • 你是如何解决这个问题的?我也面临同样的问题。你能帮助我吗? @Reckoner
  • @DeepakrajMurugesan 是的,让我回答一下。如果您能够使用我的回答解决此问题,请投票。
  • 假设您的用户模型在第一次 api 调用时有 20 个元素。以及如何确保在第二次 api 调用响应中元素相同意味着不更新,不同意味着更新或删除这样??? @Reckoner。这是解决上述问题的最佳方法吗?非常感谢您的快速回复。我会赞成它没有任何问题

标签: core-data alamofire objectmapper


【解决方案1】:

我使用“唯一约束”来解决此问题。它基本上只像主键。因此,当您在实体中添加“id”作为唯一约束时,重复的托管对象将不会存储在上下文中。以下是您可以关注的链接:
http://www.oodlestechnologies.com/blogs/How-to-Implement-Unique-Constraints-in-Core-Data

【讨论】:

    猜你喜欢
    • 2016-12-04
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 2014-09-03
    • 2019-07-15
    • 2017-11-03
    相关资源
    最近更新 更多