如何过滤一对多的关系

时间:2015-10-23 05:00:37

标签: ios swift filter realm

我有两个型号

class Survey: Object {
    dynamic var id = 0
    dynamic var campaign: Campaign?
    dynamic var lat = 0.0
    dynamic var lng = 0.0
    dynamic var duration = ""
    dynamic var week = ""
    dynamic var desc = ""

    override static func primaryKey() -> String? {
        return "id"
    }
}

class Campaign: Object {
    dynamic var id = 0
    dynamic var name = ""
    dynamic var date_start = ""
    dynamic var date_end = ""
    dynamic var desc = ""
    let surveys = List<Survey>()

    override static func primaryKey() -> String? {
        return "id"
    }
}

它们填充在表视图控制器中,顶部有UISearchBar。 Section header = campaign name,row cell是调查的信息。

如何从我的Realm过滤/查询,以便不会显示0调查的广告系列(包括快速搜索查询)。

目前我的应用仍显示0行的部分。

我做了

self.campaigns = self.realm.objects(Campaign).filter("surveys.@count > 0")

但是,这不适用于过滤:(

1 个答案:

答案 0 :(得分:0)

如果您使用早于v0.96的Realm版本,则应使用v0.96或更高版本。由于v0.96支持收集键盘查询(@count, @sum, etc.)。

  

RLMArray / List属性现在支持使用@ count,@ min,@ max,@ sum和@avg的Keypath集合查询。有关如何使用这些内容的详细信息,请参阅我们方便的NSPredicate Cheatsheet。

https://realm.io/news/realm-objc-swift-0.96.0/