【发布时间】:2018-02-01 11:26:32
【问题描述】:
我正在尝试设置一个全局领域对象,如下所示:
do {
self.realm = try Realm(configuration: baseConfig)
} catch {
fatalError("Error occurred while trying to initialise realm \(error)")
}
但是,fatalError 经常被调用。根据 Realm 文档,这并不意外,我应该能够处理 catch 中的错误。
与任何磁盘 I/O 操作一样,如果资源受限,创建 Realm 实例有时会失败。实际上,这只会在第一次在给定线程上创建 Realm 实例时发生。
我正在考虑实施这样的事情,我只是重试第二次。
do {
self.realm = try Realm(configuration: baseConfig)
} catch {
do {
self.realm = try Realm(configuration: baseConfig)
} catch {
fatalError("Error occurred while trying to initialise realm \(error)")
}
}
我的问题是,如果可以保证创建 Realm 实例只能在线程上失败一次,那么 Realm 为什么不自己重试呢?
如果第一次失败,是否有初始化 Realm 对象的标准方法?
【问题讨论】:
-
如果条件相同,无论您尝试创建数据库多少次,我认为您都会得到相同的结果