我尝试通过 NSCompoundPredicate 将多个单独的谓词组合成一个,但可能会发生一个或多个谓词未构造的情况,因为所有对象都应从 CoreData 实体中检索(因此实际上不需要谓词)。
if isGenreFilterOn {
genrePredicate = NSPredicate(format: "genID == \(genreID)")
}
if searchFor != "" {
bookPredicate = NSPredicate(format: "bokName CONTAINS[cd] %@", searchFor)
}
let predicate = NSCompoundPredicate(type: .and, subpredicates: [genrePredicate, bookPredicate])
如果未构造任何谓词,应用程序将失败。避免许多 if 子句的最佳方法是什么,我应该构造谓词从实体中检索所有对象还是有什么聪明的方法?谢谢。