我依赖加密的领域来将某些数据存储在用Swift编写的应用程序中。有时我会面临一种情况,我删除一个给定的领域并创建一个新的领域,以确保在某些状态之间不会有数据持续存在。无法捕捉到`RealmFileException:领域文件解密失败'异常
我跟踪加密密钥的自己,所以,我无意试图解密境界了错误的加密密钥,这引起了以下异常风险:
的libC++ abi.dylib:以realm类型的未捕获异常终止:: RealmFileException:无法在'/path/to/private.realm'路径中打开领域:领域文件解密失败。
因为这意味着我已经失去了原来的加密密钥,基本上让这个特定的领域没用,我希望能够删除领域文件并重新开始而不是崩溃。
我创作的境界作为建议的文档:
do {
var configuration = Realm.Configuration.defaultConfiguration
configuration.encryptionKey = ...
try Realm(configuration: configuration)
}
catch let error {
}
我试过this和类似的方法来捕捉NSException
并将它返回到斯威夫特的代码来处理,但似乎并不做到这一点是一种直接的方式。这是不可能的,还是我不正确地接近?
谢谢你答复kishikawa。我刚刚证实我们正在使用Realm 1.0.2和Realm Swift 1.0.2,这是根据您的文档的最新版本。我用来创建领域的确切代码可以在这里查看(https://gist.github.com/kaspermunck/9b1dcbf07773b22e109eefd552200e00)(或多或少从文档复制)。 –
@Muncken我测试了你的要点代码,并确认进入catch子句。如果问题是可重现的,您能否将该项目发送至[email protected]进行调查?我曾在Realm工作过。 –
我在一个单独的项目中隔离了范围内的代码并重现了问题。我会转发给你。暂时打开此线程。 –