领域:使用Swift中的子查询按值过滤子元素

时间:2018-03-23 22:59:11

标签: realm nspredicate

以下是我的Realm数据结构的简化视图:

//Entry
class Entry: Object{
  let fieldValues = List<FieldValue>()
}

//FieldValue
class FieldValue: Object{
  @objc dynamic var name = ""
  @objc dynamic var flightTime = 0
  @objc dynamic var bool = false
  @objc dynamic var text = ""
  @objc dynamic var type = ""
}

我想通过以下三种方案之一过滤条目的结果集(Results<Entry>

  1. flightTime > 0
  2. bool = true
  3. text != ''
  4. 我正在建立一个NSPredicate的数组来捕捉每个潜在的情景,但我无法让它们中的任何一个发挥作用。这是我的flightTime谓词:

    let value = "Night"    
    let predicate = NSPredicate(format: "ANY fieldValues.name = %@ AND SUBQUERY(fieldValues, $fieldValue, $fieldValue.flightTime > 0).@count > 0", value)
    

    在此谓词之后,条目仍会显示fieldValue个名称为&#34; Night&#34;和flightTime为0。

    一旦我得到正确的谓词格式,我认为我能够毫不费力地执行booltext过滤器。知道我做错了吗?

0 个答案:

没有答案