我试图在
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.
任何帮助将不胜感激如何使这项工作.
您的代码几乎是正确的,但错误需要是一个变量,以便作为传递
inout-argument with& ;:
inout-argument with& ;:
var error: NSError? = nil let count = managedobjectContext.countForFetchRequest(fetchRequest,error: &error)
更新:从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 }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。