NSSet 谓词

Predicate with NSSet

我正在尝试根据用户搜索文本过滤来自核心数据的结果,但效果很好。我正在努力制作它,以便有几个关键术语可以返回特定结果。

我有一个 Colour 实体,它与另一个实体 ProjectColourto-many 关系。 ProjectColour 实体有两个字段,我想按 fullLeftpartialLeft 搜索。

我想做的是,当我搜索术语 "full" 时,会返回任何具有 ProjectColour 字段 fullLeft > 0Colour

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)
        }
    }

通过以下方法解决了

    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)
        }
    }