objective-c - 为 iOS 分发预加载的 TouchDB 数据库

标签 objective-c ios touchdb

我在应用程序上使用 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/

相关文章:

objective-c - objective-c : AVFoundation Changing Pitch is it possible?

objective-c - Objective C AES 加密等同于java版本

objective-c - Objective C 发送不兼容的 block 指针类型

ios - Branch.io 在web端生成链接,然后在app中获取

objective-c - 运行 performSelector : on an object that returns a double, 不是 id

ios - NSDateComponents 日期之间的差异给出了错误的输出

ios - 无法处理 @"1"

android - TouchDB - CouchbaseLite 库?

android - 为 Android 编译 TouchDB 时如何避免出现内存不足错误?