直接从 bundle 访问 couchbase lite 数据库?

Access couchbase lite database directly from bundle?

我正在为我的 iOS 应用程序使用 Couchbase lite。我将数据库包含在我的应用程序包中,并且没有任何复制。 (我知道在没有复制的情况下使用 Couchbase 有点奇怪,但就是这样)

问题是我找不到直接从包访问数据库的方法,因为 replaceDatabaseNamed 会将它复制到文档目录。由于数据库很大,我不想在用户 iPhone 上复制它,一个版本在包中,一个版本在文档目录中。

你知道不复制数据库并直接从应用程序包访问它的方法吗?

这对我有用,成功地从包中以只读方式打开数据库...

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 对象,您需要确保它们在保存数据库之前得到 运行。当您将其用作只读数据库时,它们将无法更新。