我想要创建一个复杂的NSCompoundPredicate 3,然而,我不知道如何做到这一点。
假设我有5个谓词(p1、p2、p3、p4、p5)。我想实施以下条件:
compound1 = (p1 AND p2 AND p3) // NSCompoundPredicate(type: .and,
//subpredicates: predicates)
compound2 = (p4 AND p5) // NSCompoundPredicate(type: .and,
//subpredicates: predicates)
compound3 = (compound1 OR compound2) // problem is here
fetchRequest.predicate = compound3NSCompoundPredicate作为第二个参数得到了它不想要的NSPredicates数组。什么是最好的解决方案?
发布于 2017-09-24 09:52:31
NSCompoundPredicate继承自NSPredicate,因此可以将第一步创建的复合谓词作为子谓词传递给另一个复合谓词:
let compound1 = NSCompoundPredicate(type: .and, subpredicates: [p1, p2, p3])
let compound2 = NSCompoundPredicate(type: .and, subpredicates: [p4, p5])
let compound3 = NSCompoundPredicate(type: .or, subpredicates: [compound1, compound2])
fetchRequest.predicate = compound3https://stackoverflow.com/questions/46388393
复制相似问题