我最近升级到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)
我看到另一个帖子与此有些相关,但它没有帮助,因为我没有尝试直接调用路径,它只是抛出这个错误。
谢谢
答案 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)