当前位置:  开发笔记 > IOS > 正文

Swift 2.0中的countForFetchRequest

如何解决《Swift2.0中的countForFetchRequest》经验,为你挑选了1个好方法。

我试图countForFetchRequest在Swift 2.0中的托管对象上下文中使用该方法.

我注意到错误处理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.

任何帮助将不胜感激如何使这项工作.



1> Martin R..:

你的代码几乎是正确的,但error需要是一个变量,以便作为inout-argument传递&:

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
}

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有