我正在执行以下过滤,返回一个食谱列表,按给定的类别名称值过滤。
filteredRecipe = filteredRecipe.filter({
if let category = $0.valueForKey("category") as? NSManagedObject {
if let name = category.valueForKey("name") as? String {
return name.rangeOfString(cap) != nil
} else {
return false
}
} else {
return false
}
})
此过滤器与 searchBar 文本字段结合使用,因此我可能会在文本字段中使用随机值,这将使 filteredRecipe
保存不可靠的数据。
我需要确保当过滤器无法从具有给定类别名称值的 filteredRecipe
中找到任何食谱时,我会保持 filteredRecipe
不变。
目前,当没有匹配项时,它会使 filteredRecipe
为空数组 []
。我不确定是什么原因造成的。
最佳答案
您需要将过滤结果分配给一个临时变量并检查它是否不为空。
let filtered = filteredRecipe.filter({
if let category = $0.valueForKey("category") as? NSManagedObject {
if let name = category.valueForKey("name") as? String {
return name.rangeOfString(cap) != nil
}
return false
})
if !filtered.isEmpty {
filteredRecipe = filtered
}
关于ios - 如果过滤器返回 nil,我如何不返回空结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36955448/