与networking服务器同步核心数据
我正在创build一个关于鸟的应用程序。 这个应用程序也应该在离线模式下工作。 所以我决定使用核心数据。 我计划有一个约700个logging的表。 所有的鸟类将以桌面视图显示。 工作stream程应该是这样的:
- 用户启动应用程序
- 请求在后台发送到服务器
- 响应被parsing
- 数据库被更新
我感兴趣什么是最好的方法来做到这一点。 我的观点是添加到“最后修改”字段的请求,这将减less数据库应该更新的次数。 我应该删除我的实体的所有实例,或循环他们逐一比较“最后修改”字段,然后更新/删除/插入? 有没有人做过时间分析? 当用户在已经删除旧实例并且没有插入新的时候用户打开屏幕时,他会看到一个空的表视图,如何处理这种情况,我需要一个tmp实体吗? 还有其他我错过的陷阱吗?
以下可能会有所帮助
http://publications.csail.mit.edu/tmp/MIT-CSAIL-TR-2005-014.pdf
http://iphone2009.crowdvine.com/talk/presentation_file/5104/Grover_Syncing.pdf
如果我理解了你的话,你可以在应用程序和服务器数据库中修改你的鸟,并且你想把最后一个改变保存并转移到另一端。 然后你可以在你的NSUserDefaults中使用Last sync
这样的东西,并且在你发送一个请求到服务器的时候,你发送了你在上一次同步之后修改的所有入口(这是对核心数据的一个简单的请求),服务器也应该给你一个他上次同步后更新的鸟的列表,所以你可以在你的应用程序中更新它们,然后你更新你的LastSync值。
如果你只是总是从服务器获取所有更新的鸟,只需使用我的答案的第二部分。
- 无法用types参数列表(Int64,String)调用setValue
- 最好的方法来保存和检索到核心数据的UIColors
- 核心数据:UIManagedDocument或AppDelegate来设置核心数据堆栈?
- 核心数据并发`performBlockAndWait:`NSManagedObjectContext zombie
- 如何使用MagicalRecord设置Core Data轻量级迁移?
- 如何防止核心数据在iOS 5中重复?
- Swift coreData – 格式化date并在谓词中使用它
- iPhone表格,你把你的validation?
- Xcode NSManagedObject子类在标记为非可选时包含可选项