领域运行时错误

时间:2015-10-20 16:01:47

标签: try-catch realm

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

  

致命错误:'试试!'表达式意外地引发了错误:错误   Domain = io.realm Code = 2“open()失败:没有这样的文件或目录”   的UserInfo = {NSFilePath = /用户/ XXXXX /库/开发商/ CoreSimulator /设备/ 7299DF18-E7D5-4499-93DD-A5035FB48E67 /数据/容器/数据/应用/ BED64819-5895-407F-9E90-9888741E24EB /文档/默认值。领域,   NSLocalizedDescription = open()失败:没有这样的文件或目录,错误   代码= 2}:文件   /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-700.0.59/src/swift/stdlib/public/core/ErrorType.swift,   第50行(lldb)

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

谢谢

2 个答案:

答案 0 :(得分:3)

在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
}

答案 1 :(得分:-1)

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

enter image description here