Объединение двух условий в NSPredicate

Как вы комбинируете два условия в NSPredicate? Я использую следующий оператор, и я хотел бы добавить другое условие, которое сравнивает пароль с содержимым текстового поля, используя И:

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

Ответ 1

Попробуйте это

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

Ответ 2

Как уже говорилось, вы можете использовать логические операторы типа "И", "ИЛИ", в предикатах. Подробности можно найти в Синтаксис строкового формата предиката в "Руководстве по программированию предикатов".

В качестве альтернативы используйте "составные предикаты":

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

Это полезно для более сложных выражений или если вы хотите создать предикат динамически во время выполнения.

Ответ 3

AND - это именно то, что вам нужно

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