Core data 具有核心数据的Alamofire对象映射器

Core data 具有核心数据的Alamofire对象映射器,core-data,alamofire,objectmapper,Core Data,Alamofire,Objectmapper,我正在编写一个应用程序,其中有一个显示用户列表的仪表板。因此,我创建了一个名为“User”的实体。对于映射,我使用Alamofire对象映射器。 脚本 在调用API之前,我正在检查网络是否可用。如果没有,我从核心数据中提取实体并显示保存的结果。如果是,我调用ApI并从ApI获取对象,然后将其保存到我的上下文中。 问题 现在,当我从API获取对象时,我将响应保存在NSManagedObjectContext中,并将其附加到我的“用户”实体中已经存在的NSManagedObjects中。我想要的是,

我正在编写一个应用程序,其中有一个显示用户列表的仪表板。因此,我创建了一个名为“User”的实体。对于映射,我使用Alamofire对象映射器。 脚本 在调用API之前,我正在检查网络是否可用。如果没有,我从核心数据中提取实体并显示保存的结果。如果是,我调用ApI并从ApI获取对象,然后将其保存到我的上下文中。 问题
现在,当我从API获取对象时,我将响应保存在NSManagedObjectContext中,并将其附加到我的“用户”实体中已经存在的NSManagedObjects中。我想要的是,如果用户已经存在于该实体中,我不想再次将该用户对象保存在我的实体中。因此,在第一次调用中,我在DB中有20个对象,第二次呼叫后,计数增加到40,以此类推。我不想这样。我如何实现这一点?

我使用“唯一约束”来解决此问题。它基本上只像主键。因此,当您在实体中添加“id”作为唯一约束时,重复的托管对象将不会存储在上下文中。以下是您可以访问的链接:

@TomHarrington我似乎找不到确切的答案。这就是为什么我把它贴在这里。你能在链接上提供给我吗。@TomHarrington,虽然我已经解决了这个问题,但我只是想知道这是否是最好的方法。你是如何解决这个问题的?我也面临同样的问题。你能帮我做同样的事吗@Reckoner@DeepakrajMurugesan是的,让我回答。如果你能用我的答案解决这个问题,请投票。假设你的用户模型在第一次api调用时有20个元素。您将如何确保在第二次api调用响应时,元素是相同的,这意味着不更新,不同的意味着像那样更新或删除@清算人。这是解决上述问题的最好办法吗。非常感谢您的快速回复。我会投赞成票,没有问题