gpt4 book ai didi

swift - Swift 2.0 中的 countForFetchRequest

转载 作者:IT王子 更新时间:2023-10-29 05:39:13 25 4
gpt4 key购买 nike

我正在尝试在 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 中使用它时遇到了一些麻烦。

如果我做与 pre-Swift 2.0 相同的事情:

let error: NSError? = nil
let count = managedObjectContext.countForFetchRequest(fetchRequest, error: &error)

我收到错误说要删除 &,但是如果我删除它,我会收到另一个错误说 NSError 无法转换为 NSErrorPointer.

如有任何帮助,我们将不胜感激。

最佳答案

您的代码几乎是正确的,但是error 需要是一个变量,以便作为带有 & 的 inout 参数:

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
}

关于swift - Swift 2.0 中的 countForFetchRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34652618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com