Предикат с NSSet - PullRequest
       16

Предикат с NSSet

4 голосов
/ 04 мая 2019

Я пытаюсь отфильтровать результаты из основных данных на основе текста поиска пользователей, который работает нормально.Я изо всех сил стараюсь сделать так, чтобы есть несколько ключевых терминов, которые возвращают конкретные результаты.

У меня есть Colour сущность, которая имеет to-many связь с другой сущностью, ProjectColour.У сущности ProjectColour есть два поля, которые я хочу найти по fullLeft и partialLeft.

Что я хотел бы сделать, так это когда я ищу термин "полный", чтобы вернуть любой Colour с полем ProjectColour fullLeft > 0.

То же самое для partialLeft и снова или для всех.

Пока у меня есть это, но я не уверен, как предикат для проверкиобъекты в NSSet

    if ( searchedText.count > 0 ) {
        if searchedText == "full" {

        } else if searchedText == "partial" {

        } else if searchedText == "all" {

        } else {
            fetchRequest.predicate = NSPredicate(format: "name contains[cd] %@", searchedText)
        }
    }

1 Ответ

4 голосов
/ 07 мая 2019

Разрешено со следующим

    if ( searchedText.count > 0 ) {
        if searchedText.lowercased() == "full" {
            fetchRequest.predicate = NSPredicate(format: "ANY projectColours.fullLeft > 0")
        } else if searchedText.lowercased() == "partial" {
            fetchRequest.predicate = NSPredicate(format: "ANY projectColours.partialLeft > 0")
        } else if searchedText.lowercased() == "all" {
            fetchRequest.predicate = NSPredicate(format: "ANY projectColours.fullLeft > 0 OR ANY projectColours.partialLeft > 0")
        } else {
            fetchRequest.predicate = NSPredicate(format: "name contains[cd] %@", searchedText)
        }
    }
...