我正在尝试使用countForFetchRequest
Swift 2.0 中托管对象上下文上的方法。
我注意到错误处理executeFetchRequest
已更改为新的do-try-catch
syntax:
func executeFetchRequest(_ request: NSFetchRequest) throws -> [AnyObject]
but the countForFetchRequest
方法仍然使用旧的错误指针:
func countForFetchRequest(_ request: NSFetchRequest,
error error: NSErrorPointer) -> Int
...我在弄清楚如何在 Swift 2.0 中使用它时遇到了一些麻烦。
如果我做与 Swift 2.0 之前相同的事情:
let error: NSError? = nil
let count = managedObjectContext.countForFetchRequest(fetchRequest, error: &error)
我收到错误消息说要删除&
,但是如果我删除它,我会收到另一个错误NSError
无法转换为NSErrorPointer
.
任何有关如何使其正常工作的帮助将不胜感激。
你的代码几乎是正确的,但是error
需要是一个variable,以便被传递为
inout 参数与&
:
var error: NSError? = nil
let count = managedObjectContext.countForFetchRequest(fetchRequest, error: &error)
Update: As of Swift 3, countForFetchRequest
抛出错误:
do {
let count = try managedObjectContext.context.count(for:fetchRequest)
return count
} catch let error as NSError {
print("Error: \(error.localizedDescription)")
return 0
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)