我有一个名为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
用户选择两位艺术家都会展示的低音+迪斯科。
我错过了什么,但我不确定是什么?
答案 0 :(得分:3)
你忘了&#39; .stringValue&#39;,试试这个:
all.filter("ANY genres.stringValue IN %@", ["Pop", "Jazz"])