wqu*_*mar 5 sqlite caching ios
我正在尝试在我的iOS应用程序中构建一个离线同步功能,并希望从社区获得一些关于策略和最佳实践的反馈/建议,以便做同样的事情.应用程序详细信息如下:
该应用程序向用户显示数字目录,并允许他们执行创建和下订单等操作.目前,该应用程序仅在联机时才有效,我们为所有操作提供API,例如查看目录,创建/下达返回JSON数据的订单.我们希望为用户提供离线/同步功能,用户可以通过该功能查看目录并在离线时创建/下订单,当他们上线时,订单详细信息将同步并更新到我们的服务器.我们还希望从服务器中提取最新数据,并让应用程序离线时,在应用程序更改或服务器上发生的订单更改的情况下让应用程序保持最新.你能帮助我找到最好的设计和方法来处理这种功能吗?
我刚刚在今年年初做过类似的事情.在我读到NSOperationQueue和NSOperation之后,我做了一个直接的方法:
每当在我的本地数据库中更改/添加/ ...时,我都会向队列添加一个新的"同步"操作,我不关心,如果应用程序在线或离线(我添加了一个可达性观察器,或者暂停队列或将其恢复工作;当然,如果发生错误(在同步期间网络丢失),我会重新排队).操作本身读取/写入数据库并执行网络操作.我的ViewController使用NSFetchedResultsController(with delegate = self)来获取有关更改的回调.在某些情况下,我需要一些额外的本地数据(它是关于计数对象),其中我使用了NSManagedObjectContextObjectsDidChangeNotification.
此外,我使用了Multi-Context CoreData,这听起来很合理(我只有两个上下文).
要获得有关服务器更改的通知,我相信iOS 7会为您带来新的变化.
在服务器端,您应该阅读一些您想要的实际方法:即Dan Grover的数据同步或开发Android REST客户端应用程序(当然还有更多好文章).
| 归档时间: |
|
| 查看次数: |
7121 次 |
| 最近记录: |