web-dev-qa-db-fra.com

Combiner deux conditions dans NSPredicate

Comment combinez-vous deux conditions dans NSPredicate? J'utilise la déclaration suivante et je voudrais ajouter une autre condition qui compare le mot de passe avec le contenu d'un champ de texte en utilisant ET :

request.predicate = NSPredicate(format: "username = %@", txtUserName.text!)
21
Simon

Essaye ça

request.predicate = NSPredicate(format: "username = %@ AND password = %@", txtUserName.text!, txtPassword.text!)
28
Alexander

Comme déjà dit, vous pouvez utiliser des opérateurs logiques comme "ET", "OU" dans les prédicats. Les détails peuvent être trouvés dans Syntaxe de chaîne de format de prédicat dans le "Guide de programmation de prédicat".

Comme alternative, utilisez des "prédicats composés":

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

Cela est utile pour les expressions plus complexes ou si vous souhaitez créer un prédicat de manière dynamique au moment de l'exécution.

46
Martin R

AND est exactement ce dont vous avez besoin

request.predicate = NSPredicate(format: "username = %@ AND password = %@", txtUserName.text!, txtPassWord.text!)
0
vadian