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

时间:2016-06-22 10:04:19

标签: ios couchbase couchbase-lite

我在我的iOS应用中使用Couchbase lite。我将数据库包含在我的应用包中,但我没有任何复制。 (我知道使用没有复制的Couchbase有点奇怪,但事实就是如此)

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

您是否知道一种不复制数据库并直接从应用程序包访问它的方法?

1 个答案:

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