Realm Swift:如何结合布尔属性与字符串List过滤Realm对象?
解决Realm Swift中同时过滤布尔属性与List集合的问题
嘿,我来帮你搞定这个Realm查询的问题!你之前的写法没成功,是因为针对List<String>类型的属性,不能直接用CONTAINS来判断元素是否存在——CONTAINS是用来匹配单个字符串内容的,而你要检查的是集合里有没有某个特定元素。
正确的谓词写法
针对你的需求(testMode为false且countries列表包含US),应该用ANY量词来遍历List中的元素,判断是否有符合条件的项:
category.templates.filter("testMode = false AND ANY countries == 'US'")
如果需要忽略大小写匹配(比如不小心写成了us也能匹配到),可以加上大小写不敏感的标记[c]:
category.templates.filter("testMode = false AND ANY countries ==[c] 'US'")
额外说明
如果之后你需要更复杂的集合过滤,比如要求列表同时包含US和CA,可以叠加ANY条件:
category.templates.filter("testMode = false AND ANY countries == 'US' AND ANY countries == 'CA'")
内容的提问来源于stack exchange,提问作者Brian
相关产品推荐
相关产品推荐

