gpt4 book ai didi

ios - Swift:无法使用 'filter' 类型的参数列表调用 '((Any) throws -> Bool)'

转载 作者:行者123 更新时间:2023-11-30 12:44:17 26 4
gpt4 key购买 nike

我有一个获取请求,返回一些数据,我想过滤这些数据,如下所示:

// Set up fetch request 
let finalVariants : [DBVariant]
do {
let variants = try context.fetch(request)
finalVariants = variants.filter() { $0.variant == true }
} catch let error as NSError {
// Handle error
finalVariants = []
}

编写此代码时,Xcode 给出了标题中的错误:

Cannot invoke 'filter' with an argument list of type '((Any) throws -> Bool)'

过滤器 block 中的代码不会抛出异常,将过滤器 block 移动到带有签名 (Any)->Bool 的单独变量中没有帮助。

最佳答案

答案是我没有解包并将类型分配给获取请求的可选结果,因此工作代码如下所示:

// Set up fetch request 
let finalVariants : [DBVariant]
do {
let variantsResult = try context.fetch(request)
if let variants = variantsResult as? [DBVariant] {
finalVariants = variants.filter() { $0.variant == true }
} else {
finalVariants = []
}
} catch let error as NSError {
// Handle error
finalVariants = []
}

关于ios - Swift:无法使用 'filter' 类型的参数列表调用 '((Any) throws -> Bool)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41836659/

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