Всем привет. Кто может подсказать как сделать в Predicate AND, вместо OR?
Делаю Запрос который работает через OR:
————
if idTags != nil && idTags?.count != 0 && !isInbox {
predicates.append(NSPredicate(format: "ANY
tag.id in %@", idTags!))
}
predicates.append(NSPredicate(format: "archived == %d", 0))
————
Вывод в консоль: ANY
tag.id IN {6, 8} AND archived == 0
————
Все хорошо, но массив Tags надо сделать через AND, а не через OR
Пробовал делать вот так:
————
№1
if idTags != nil && idTags?.count != 0 && !isInbox {
for id in idTags! {
predicates.append(NSPredicate(format: "
tag.id == %d", id))
}
}
predicates.append(NSPredicate(format: "archived == %d", 0))
№2
if idTags != nil && idTags?.count != 0 && !isInbox {
var stringFormat = ""
for (index, id) in idTags!.enumerated() {
stringFormat += "
tag.id == \(id)"
if index != idTags!.count-1 {
stringFormat += " and "
}
}
predicates.append(NSPredicate(format: stringFormat))
}
————
№1 Вывод в консоль:
tag.id == 6 AND
tag.id == 8 AND archived == 0
№2 Вывод в консоль: (
tag.id == 6 AND
tag.id == 😍 AND archived == 0
————
№1 и №2 выдают краш с такой ошибкой "Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'to-many key not allowed here'"
Ничего не нашел в инете особого, может вы знаете как сделать правильно? Заранее спасибо