首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将CoreData更改推送到web服务的最佳实践?

将CoreData更改推送到web服务的最佳实践?
EN

Stack Overflow用户
提问于 2012-10-24 23:40:25
回答 2查看 383关注 0票数 1

我有一个基于CoreData的应用程序是使用web服务填充的。当用户更改我的web服务中某个对象的数据时,我希望将该更改推送回我的web服务。

实现这一目标的最佳实践是什么?我可能有很多需要发送的changes对象,但用户可能没有连接,我希望它在后台发生。

是否在CoreData中标记对象并需要远程保存?如果可能的话,每隔几分钟批处理一次?我用过they和Google Analytics,他们肯定在做这样的事情,但我不确定最好的方法是什么。

也许在核心数据中有一个单独的表,其中包含需要更新的EntityName和ObjectID?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-25 08:22:07

这在一定程度上取决于服务器API和它想要的信息类型。

在核心数据实体上添加修改标志或日期是一种简单的方法。只需查找标志为YES的每个对象,或者查找日期比上次同步更近的对象。但是它是有限的--您如何处理告诉服务器您删除了一个对象?您可能需要保留某种类型的外部日志--例如,包含等待发送的外发更改的plist。

我使用的一个通用方案是这样的:

NSManagedObjectContextWillSaveNotification

  • When添加观察者此通知收到后,请求insertedObjectsupdatedObjectsdeletedObjects的托管对象根据这些results.

  • When同步来找出我的传出更改plist是什么,读取plist,发送更改,并将列表清零(确保这与did-

  • 通知同步,这样您就不会在未发送更改的情况下意外将更改置零)。

在此过程中还会遇到其他几个细节--例如,如果同步失败,不要删除传出的更改列表。

票数 2
EN

Stack Overflow用户

发布于 2012-10-25 00:21:18

看看NSIncrementalStore,特别是AFIncrementalStore (它利用了NSIncrementalStore)。

在这里讨论这两种情况的一篇好文章:http://nshipster.com/nsincrementalstore/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13052647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档