Swift 2.0中的countForFetchRequest

我试图在 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&amp ;:
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
}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...