Core data RestKit-脱机存储后发送添加/编辑/删除的对象

Core data RestKit-脱机存储后发送添加/编辑/删除的对象,core-data,restkit,request-queueing,Core Data,Restkit,Request Queueing,当用户添加、编辑或删除没有internet连接的对象时,我通过标记对象并将其与核心数据一起保存,从而为核心数据使用RestKit提供离线支持 如果internet再次可用,我将获取所有添加/编辑/删除的对象,将它们保存在数组中,然后使用常规方法和循环将它们放到服务器上 ... [objectManager postObject:self.company mapResponseWith:[companyMapper inverseMapping] delegate:self]; ... 阵列列表

当用户添加、编辑或删除没有internet连接的对象时,我通过标记对象并将其与核心数据一起保存,从而为核心数据使用RestKit提供离线支持

如果internet再次可用,我将获取所有添加/编辑/删除的对象,将它们保存在数组中,然后使用常规方法和循环将它们放到服务器上

...
[objectManager postObject:self.company mapResponseWith:[companyMapper inverseMapping] delegate:self];
...
阵列列表
-获取添加的公司
-FetchedEditedCompanys
-获取添加的内容
-fetchedEditedContacts
-获取删除的联系人

Init方法(已编辑公司的示例)

updateAccountToServer的末尾,我发布了对象(self.company)及其到服务器的映射

...
[objectManager postObject:self.company mapResponseWith:[companyMapper inverseMapping] delegate:self];
...
问题: 我正在寻找一个更有效的解决方案,当用户确实更新了一些对象,并且(特别的一个)确实添加了一些新对象时,因为与所有编辑/删除方法相比,服务器会为将要存储的每个新创建的对象返回一个ID

1) 避免对每个编辑的对象使用例如updateAccountToServer,而是发送对象数组
2) 与RKObjectManager一起使用RKRequestQueue()

在我看来,1)将很难实现,因为每个请求的resourcePath都包含一个唯一的ID,所以我尝试了2)但没有使用绑定每个请求的映射

[syncQueue addRequest:[[RKObjectManager sharedManager] objectLoaderWithResourcePath:tempString delegate:self]]; 

谢谢你的想法

我和其他一些人正在积极地研究一个开发分支,以便将其自动集成到RestKit中

我们正在RK内部实现一个同步管理器,它监视NSManagedObjectContext的更改,如果网络不可用,则将这些请求排队,直到网络返回

我们希望获得更多关于代码的帮助/想法,因此如果您能在此页面上告诉我们更多关于您的用例的信息:


对于1,您可以将插入/更新/删除对象的NSArray封装到新对象中,然后将其发布到服务器。为此,您需要确保在修改的对象上设置了正确的位,以便服务器进行解密,还需要确保服务器可以接收该对象,并对其进行解构以获得修改对象的数组

如果该分支是RestKit 0.10的分支,则该分支现在似乎处于非活动状态。有人在restkit0.20.x的类似分支上工作吗?