realm - 如何在 iOS 应用程序中以编程方式将只读领域文件升级到最新版本
问题描述
我最近在我的 iOS 应用程序中将 Realm 更新为10.1.2
. 但后来我遇到了一个崩溃,上面写着:
致命错误:“试试!” 表达式意外引发错误:...“必须允许升级 Realm 文件格式才能继续。” ...在RO模式下打开之前需要升级Realm文件路径:...
该remote.realm
文件是用户存储在远程服务器上的数据,这些数据被下载到 iOS 应用程序并用于各种用途。但是,3.x
当我的 iOS 应用程序现在使用10.x
.
我知道在 Realm Studio 中打开 Realm 可以执行升级,但是如何从我的 Cocoa 应用程序中升级/打开只读 Realm 文件并将其转换为新版本?
解决方案
如果您正在下载文件并且没有在某处重新上传或在进程之间共享它,您可能会捕获错误,在没有只读标志的情况下打开它以执行升级,然后以只读方式重新打开它并返回给调用者。我对 swift API 不是很熟悉,但在伪代码中,它看起来像:
func openRealm(config: Realm.Configuration) -> Realm {
do {
return try Realm(config)
}
catch migrationException {
config.readOnly = false
try! Realm(config)
config.readOnly = true
return try! Realm(config)
}
}
推荐阅读
- c++ - 计算 dll 内许多项目的平均值
- javascript - 如何使用 javascript 使元素来回移动?
- cassandra - 用于快照管理的 cassandra 工具
- scala - Scala中“按名称调用”和Function0之间的区别
- autohotkey - 如何在 AutoHotkey 的 FileAppend 中转义逗号?
- c++ - 与多个用户一起处理 SEAL 密文
- java - 将bean xml转换为spring boot注解
- python-3.x - Python - 调用随机函数并创建一个线程
- sql-server - 当我向我的 jsquery 日历添加时间时,它正在更改为不同的时间
- entity-framework - Entity Framework Core 显示警告消息