我有一个简单的问题,我想返回这个:
let results = prices.filter{
if($0.MultipleSearchString != nil){
predicate.evaluate(with: ($0.MultipleSearchString?.lowercased())!)
}else {
self.loadPricesFromDb()
}
}
但是我有问题,因为它给出的问题是:在关闭时缺少返回,预计会返回'Bool'而我不知道为什么有人能解释我这个?
你使用过滤功能错了。
使用内联闭包的过滤器将使用提供的闭包中的逻辑评估数组的每个成员,并返回满足该逻辑的元素数组,例如:
let results = prices.filter {
$0.MultipleSearchString != nil
}
上面的结果将包含MultipleSearchString
与nil不同的所有元素。
调用一个可能从数据库加载数据的函数也是不好的,因为它会(几乎)每次迭代都会触发。
您需要重构代码以更好地使用您的预期解决方案。