问题
How do you combine two conditions in NSPredicate
? I am using the following statement and I would like to add another condition that compares the the password with the contents of a textfield using AND:
request.predicate = NSPredicate(format: "username = %@", txtUserName.text!)
回答1:
Try this
request.predicate = NSPredicate(format: "username = %@ AND password = %@", txtUserName.text!, txtPassword.text!)
回答2:
As already said, you can use logical operators like "AND", "OR" in predicates. Details can be found in Predicate Format String Syntax in the "Predicate Programming Guide".
As an alternative, use "compound predicates":
let p1 = NSPredicate(format: "username = %@", "user")
let p2 = NSPredicate(format: "password = %@", "password")
let predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [p1, p2])
This is useful for more complex expressions, or if you want to build a predicate dynamically at runtime.
回答3:
AND
is exactly what you need
request.predicate = NSPredicate(format: "username = %@ AND password = %@", txtUserName.text!, txtPassWord.text!)
来源:https://stackoverflow.com/questions/33321050/combining-two-conditions-in-nspredicate