主包中的 Realm realmWithPath 方法在 iOS 上崩溃

Posted

技术标签:

【中文标题】主包中的 Realm realmWithPath 方法在 iOS 上崩溃【英文标题】:Realm realmWithPath method in main bundle crashes on iOS 【发布时间】:2014-10-11 22:50:31 【问题描述】:

我不在应用程序的 Document 目录中使用 *.realm 文件。我在主捆绑目录中使用它。

当我调用它时:

NSString *path = [[NSBundle mainBundle] pathForResource:@"example" ofType:@"realm"];
RLMRealm *realm  = [RLMRealm realmWithPath:path];

它崩溃并记录:

由于未捕获的异常“RLMException”而终止应用程序,原因:“open() failed: Operation not allowed”

【问题讨论】:

【参考方案1】:

Realm 文件必须位于您具有写入权限的目录中,以防您希望能够更新任何数据。 如果您只打算在您的应用中分发预设数据库并以只读方式访问它,则必须使用[RLMRealm realmWithPath:readOnly:error:] 以只读方式打开它。

【讨论】:

这个答案是正确的。 Realm 文档中的更多信息:realm.io/docs/cocoa/latest/#other-realms

以上是关于主包中的 Realm realmWithPath 方法在 iOS 上崩溃的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用核心数据读取和写入主包中的数据库吗?

如何使用主包的虚拟化文件系统/注册表使可选包中的应用程序运行?

无法从主包中按名称加载 Nib 文件

从主包中获取目录的内容

我在主包中找不到我的 AppIcon

使用 webpack 为 react-lottie 从主包中排除 JSON 文件