【问题标题】:Realm Runtime Error领域运行时错误
【发布时间】:2016-01-19 09:25:27
【问题描述】:

我最近升级到 Swift 2.0,现在我遇到了领域问题。最近,我遇到了一个问题,即应用程序在第一次出现“try!Realm()”时立即崩溃,从而导致此错误:

致命错误:“试试!”表达式意外引发错误:错误 Domain=io.realm Code=2 "open() failed: No such file or directory" UserInfo={NSFilePath=/Users/XXXXX/Library/Developer/CoreSimulator/Devices/7299DF18-E7D5-4499-93DD-A5035FB48E67/data/Containers/Data/Application/BED64819-5895-407F-9E90-9888741E24EB/Documents/default。领域, NSLocalizedDescription=open() 失败:没有这样的文件或目录,错误 代码=2}:文件 /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-700.0.59/src/swift/stdlib/public/core/ErrorType.swift, 第 50 行 (lldb)

我看到了另一篇与此相关的帖子,但它没有帮助,因为我没有尝试直接调用路径,它只是抛出了这个错误。

谢谢

【问题讨论】:

    标签: try-catch realm


    【解决方案1】:

    当我通过 Realm 浏览器从 Realm 中手动删除一个对象时,我也发生了同样的事情。 这是我的两分钱:删除 realm.lock 和其他日志文件并重新启动对我有用的应用程序。看一下截图:

    【讨论】:

      【解决方案2】:

      当您在 Swift 中使用 try! 时,您选择忽略可以通过其他方式恢复的错误。

      在这种情况下,Realm 初始化程序被标记为throws。以下是 Realm 在Error Handling 上的文档的摘录:

      与任何磁盘 IO 操作一样,如果资源受限,创建 Realm 实例有时可能会失败。实际上,这只会在第一次在给定线程上创建 Realm 实例时发生。从同一个线程对 Realm 的后续访问将重用缓存的实例,并且总是会成功。

      要在给定线程上首次访问 Realm 时处理错误,请使用 Swift 内置的错误处理机制:

      do {
        let realm = try Realm()
      } catch let error as NSError {
        // handle error
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-26
        • 1970-01-01
        相关资源
        最近更新 更多