如何使用不同的主键属性更新 RestKit 中的已发布对象?
Posted
技术标签:
【中文标题】如何使用不同的主键属性更新 RestKit 中的已发布对象?【英文标题】:How to update a posted object in RestKit with different primary key attributes? 【发布时间】:2012-05-17 13:28:11 【问题描述】:我将对象作为 JSON 发布在服务器上,该 JSON 由一些属性和一个作为主键属性的 ID 组成。我也在使用 Core Data 将所有对象保存在本地。
问题是,当我第一次创建 POST 对象时,我知道除了唯一 ID 之外的所有属性。 ID 是在服务器端设置的,当我从服务器获得响应时,我的数据库中有两个对象: 一个 ID 为 0,一个为真实 ID。
有没有办法让restkit/coredata把这两个对象当作相同的对象,或者不将第一个对象保存在数据库中?
【问题讨论】:
【参考方案1】:您可以像这样使用postObject: usingBlock
方法并为对象加载器分配一个目标对象。
[[RKObjectManager sharedManager] postObject:myObject usingBlock:^(RKObjectLoader *loader)
loader.targetObject = myObject;
loader.delegate = self;
loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[myObject class]];
请注意,每次运行该方法时,您还必须在代码块中手动设置委托。
【讨论】:
以上是关于如何使用不同的主键属性更新 RestKit 中的已发布对象?的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI:如何使用位置管理器类的已发布属性更新一个类(ObservableObject)的已发布属性?
EF6:如何在 Select 中包含子属性,以便创建单个实例。避免“相同的主键”错误
使用唯一随机值更新sql表中的所有行,而不使用c#中的主键或唯一键