ios - Realm实例创建失败如何处理?

标签 ios swift realm

我正在尝试设置一个全局 Realm 对象,如下所示:

do {
      self.realm = try Realm(configuration: baseConfig) 
    } catch {
        fatalError("Error occurred while trying to initialise realm \(error)")
    } 

但是, fatalError 经常被调用。根据 Realm 文档,这并不意外,我应该能够处理 catch 中的错误。

Like any disk I/O operation, creating a Realm instance could sometimes fail if resources are constrained. In practice, this can only happen the first time a Realm instance is created on a given thread.

我正在考虑实现这样的事情,我只是重试第二次。

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 对象的标准方法?

最佳答案

 func createDB ()

 {
      do {
           self.realm = try Realm(configuration: baseConfig) 
      } catch {

         if(counter < 3)
         {  
              self.createDB()

              counter = counter + 1 
         }
         else
         {
            fatalError("Error occurred while trying to initialise realm \(error)")
          }

      } 


  }

关于ios - Realm实例创建失败如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48561601/

相关文章:

ios - NSCFArray 长度错误 iOS

ios - 我的自定义形状后面的颜色已填充,我想将其设为白色

swift - 通过 Swift 映射将 Realm 对象映射到 Dict

java - 错误: Type 'int[]' of field is not supported | how to add integer list to Realm?

ios - 使用 EVReflection 转换时 Realm 对象为空

ios - 从 Firebase 数据库检索整数什么也没有

ios - Storyboard和 SVN 冲突

iphone - 滑动手势不适用于ios 6中的表格 View

swift - Swift 中运算符重载的多态性

Swift:将 ALAsset 复制到应用程序的文档目录中