结合NSPredicate中的两个条件

Sim*_*mon 19 nspredicate swift

你如何结合两个条件NSPredicate?我正在使用以下语句,我想添加另一个条件,使用AND将密码与文本字段的内容进行比较:

request.predicate = NSPredicate(format: "username = %@", txtUserName.text!)
Run Code Online (Sandbox Code Playgroud)

Mar*_*n R 41

如前所述,您可以在谓词中使用逻辑运算符,如"AND","OR".有关详细信息,请参阅"谓词编程指南" 中的 谓词格式字符串语法.

作为替代方案,使用"复合谓词":

let p1 = NSPredicate(format: "username = %@", "user")
let p2 = NSPredicate(format: "password = %@", "password")
let predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [p1, p2])
Run Code Online (Sandbox Code Playgroud)

这对于更复杂的表达式很有用,或者如果要在运行时动态构建谓词.

  • @Jan:`orPredicateWithSubpredicates`? (3认同)

小智 27

试试这个

request.predicate = NSPredicate(format: "username = %@ AND password = %@", txtUserName.text!, txtPassword.text!)
Run Code Online (Sandbox Code Playgroud)