【问题标题】:Predicate with NSSet使用 NSSet 的谓词
【发布时间】:2019-05-04 16:41:59
【问题描述】:

我正在尝试根据运行良好的用户搜索文本过滤来自核心数据的结果。我正在努力做到这一点,以便有几个关键术语可以带来特定的结果。

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

我想做的是,当我搜索“完整”一词以带回任何具有 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)
        }
    }

【问题讨论】:

标签: swift predicate


【解决方案1】:

通过以下方式解决

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

【讨论】:

    猜你喜欢
    • 2014-10-15
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多