我尝试在Swift 2.0中的托管对象上下文中使用countForFetchRequest
方法。
我注意到,executeFetchRequest
的错误处理已更改为新的do-try-catch
语法:
func executeFetchRequest(_ request: NSFetchRequest) throws -> [AnyObject]
但是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
。
任何帮助将不胜感激关于如何让这个工作。
2条答案
按热度按时间7cwmlq891#
您的代码几乎是正确的,但是
error
需要是一个 variable,以便作为&
的inout参数传递:更新:自Swift 3起,
countForFetchRequest
抛出错误:cdmah0mi2#
你需要这样做:
这是Swift 2.0的代码