【发布时间】:2015-08-18 00:08:48
【问题描述】:
当我使用错误/不存在的密钥/密钥路径执行 FetchRequest 但应用程序仍然崩溃时,我试图捕获错误。
这就是我创建 NSPredicate 的方式:
let pred = NSPredicate(format: "(\("WRONGKEY") = %@)", equalTo)
let request = NSFetchRequest()
request.predicate = pred
request.entity = MyEntityDescription
(WRONGKEY 是核心数据模式中可能错误/不存在的参数)
这是导致错误的行:
var objects = managedContext?.executeFetchRequest(request, error: &error) as? [Model]
这是错误:
* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“在实体 中找不到 keypath keyX” * 首先抛出调用栈:.....
所以我尝试使用:
if let objects = managedContext?.executeFetchRequest(request, error: &error) as? [Model] {
println("okkkkkkkk")
} else {
println("error")
}
但不起作用。
我试过了:
if(error != nil) {
但也不起作用。
有没有办法捕捉错误并避免应用崩溃?
【问题讨论】:
标签: ios swift core-data error-handling