我在应用程序上使用 TouchDB 与云上的 CouchDB 服务器同步数据。
一切正常,但我现在需要使用应用程序包部署应用程序的预加载版本,这样用户就不必下载数 MB 的静态数据。
执行此操作的最佳方法是什么?我正在考虑将 TouchDB 目录与数据库和附件一起包含在我的项目中,在初始化 TouchDB 数据库之前,我检查它是否存在于“应用程序支持”数据库下,如果不存在,我将其复制到我的代码中。
这是正确的做法吗?
最佳答案
您可以在您的应用程序包中包含数据库和附件目录,然后使用
-(BOOL) replaceWithDatabaseFile: (NSString*)databasePath
withAttachments: (NSString*)attachmentsPath
error: (NSError**)outError;
https://github.com/couchbaselabs/TouchDB-iOS/blob/master/Source/TD_Database.h#L87
看起来这会在执行您计划的操作之前进行一些合理性检查:
https://github.com/couchbaselabs/TouchDB-iOS/blob/master/Source/TD_Database.m#L91
但是,这确实意味着您不必将复制代码与数据库保存文件的位置保持同步。
关于objective-c - 为 iOS 分发预加载的 TouchDB 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10962969/