Realm Swift - 使用List <object>过滤List <object>的结果

时间:2017-03-28 03:39:36

标签: ios swift realm

我有一个名为Artist的类,其中包含一个Genres列表。

在应用程序的其他地方,用户可以选择多种类型,并且应该过滤艺术家列表以显示它们是否与标记的类型之一匹配。

UITableView数据源是我的Results<Artist>

从我可以收集到的内容来看,我不能拥有一个字符串列表,所以我创建了自己的类RealmString,其中包含一个字符串

class Artist: Object {
    let genres = List<RealmString>()
}

class RealmString: Object {
    convenience init(string: String){
        self.init()
        self.stringValue = string
    }

    dynamic var stringValue = ""
}

所有这些都有效,我可以按预期显示这些类型。

当我尝试按Results<Artist>过滤List<RealmString>时,我收到以下错误。

artists = unFilteredArtists.filter("genres IN %@", genreListToFilter)
  

***由于未捕获的异常终止应用程序'无效谓词',原因:'包含数组属性的关键路径必须使用聚合   操作

然后我尝试了这个,但我没有得到任何结果(但没有崩溃)

artists = unFilteredArtists.filter("ANY genres IN %@", genreListToFilter)

我期待的是如果我有两位艺术家

1:故障,放克,低音

2:dub,drum,disco

用户选择两位艺术家都会展示的低音+迪斯科。

我错过了什么,但我不确定是什么?

1 个答案:

答案 0 :(得分:3)

你忘了&#39; .stringValue&#39;,试试这个:

all.filter("ANY genres.stringValue IN %@", ["Pop", "Jazz"])