【问题标题】:Access couchbase lite database directly from bundle?直接从bundle访问couchbase lite数据库?
【发布时间】:2016-06-22 10:04:19
【问题描述】:
我正在为我的 iOS 应用程序使用 Couchbase lite。我将数据库包含在我的应用程序包中,并且没有任何复制。 (我知道在没有复制的情况下使用 Couchbase 有点奇怪,但就是这样)
问题是我找不到直接从包中访问数据库的方法,因为 replaceDatabaseNamed 会将它复制到文档目录。由于数据库很大,我不想在用户 iPhone 上复制它,其中一个版本在捆绑包中,一个版本在文档目录中。
您知道不复制数据库并直接从应用程序包访问它的方法吗?
【问题讨论】:
标签:
ios
couchbase
couchbase-lite
【解决方案1】:
这对我有用,并成功地从包中以只读方式打开数据库...
CBLManagerOptions options;
options.readOnly = YES;
_manager = [[CBLManager alloc] initWithDirectory:[[NSBundle mainBundle] resourcePath] options:&options error:&error];
if (error == nil) {
// load an existing database
_database = [_manager existingDatabaseNamed:named error:&error];
}
这里要补充一点,如果您有任何 CBLView 对象,则需要确保它们在保存数据库之前运行。当您将其用作只读数据库时,它们将无法更新。