我有一个使用SQLite数据库的应用程序。随着iCloud的兴起,我试图找出一种在设备之间同步数据的良好架构。因此,可以说我的应用程序可以在iPhone,iPad和Mac上运行。如何在所有设备上使数据库中的数据保持最新状态?
我的第一个想法是,我可以将数据库放在云中并发送事务。但是设备可能并不总是在线,并且用户随时都需要他们的内容,因此无法正常工作。我的另一个想法是继续使用本地数据库,然后在建立连接后将缓存的数据发送到中央数据库。问题是我什至没有从哪里开始这样的理想。我如何知道已发送和未发送哪些数据,建立连接后实际发送哪些数据等。
因此,这是我的问题(我们不必深入研究iCloud),使用SQLite数据库和iCloud(或任何存储介质),如何在多个设备之间同步数据,但仍将最新数据本地存储在设备?
最佳答案
您可能要签出Couchbase Mobile。这将有助于您寻找同步。
如果您对CoreData进行了大量投资,那么您可能需要考虑编写自己的NSIncrementalStore,以支持在关键值存储之间来回写入数据。
如果将数据沙箱化到特定用户,则iCloud只会是一个很好的解决方案。如果您有多个用户想要查看相同的数据,那么它将无法正常工作。