无法从捆绑领域获取查询结果

Can't get query results from a bundled Realm

我正在尝试将我的应用程序与我在单独的目标中创建的(使用相同模型)预生成的 Realm 文件捆绑在一起。

按照 bundling a realm with an app 中的说明,我使用 -[RLMRealm writeCopyToPath:error:] 创建了一个压缩版本的数据库,并复制到我的应用程序包中。

Realm 文件名为 data.Realm。数据是只读访问的,所以我没有将它复制到文档目录中,而是将它留在了包中。

问题是我的非默认领域没有返回任何查询结果,尽管领域文件包含条目。初始化Realm时没有报错,所以我认为不是文件访问问题

这是运行领域测试查询的代码:

RLMRealmConfiguration *rlmConfig = [RLMRealmConfiguration defaultConfiguration];
NSString *DBpath =[[NSBundle mainBundle] pathForResource:@"data" ofType:@"realm"];
rlmConfig.path = DBpath;
rlmConfig.readOnly = YES;
NSError *err;
realm = [RLMRealm realmWithConfiguration:rlmConfig error:&err];
if (err)
    NSLog(@"Error: %@",err);
Person *result = [[Person allObjects] firstObject];
NSLog(@"first Person: %@",result.name); //Empty - No results

我通过将默认领域设置为我的配置解决了这个问题:

RLMRealmConfiguration setDefaultConfiguration:rlmConfig];

然后我简单地加载了这个 "default" 领域,它正在使用我的捆绑文件。

[RLMRealm defaultRealm]