我有realm数组,我想过滤包含id = 2和user_id = 4的对象。请查看下面的代码。
for item in realm.objects(data.self).filter("id == 2 && user_id == 4") {
print(item)
}
答案 0 :(得分:1)
您在某个领域使用了错误的运算符,请在下面查看我的答案。
for item in realm.objects(data.self).filter("id == 2 AND user_id == 4") {
print(item)
}
答案 1 :(得分:1)
将id
与两个值同时进行比较似乎不逻辑,id
总是有一个值(2或4)但不是两者,这意味着你的代码应该总是返回一个空数组。
如果您打算根据id
的值(例如2或4)过滤对象,则可以这样做:
for item in realm.objects(data.self).filter("id == 2 OR id == 4") {
print(item)
}
请注意,在谓词中,您应键入" AND"而不是"&&"和"或"而不是" ||"。有关详细信息,请查看:https://realm.io/docs/swift/latest/#filtering
表示item
是id
为2或4的任何项目。
<强>更新强>
由于谓词的变化来自:
"id == 2 OR id == 4"
到
"id == 2 && user_id == 4"
你应该简单地做什么 - 正如我在上面的说明中所提到的 - 是改变&#34;&amp;&amp;&#34;到&#34; AND&#34;:
for item in realm.objects(data.self).filter("id == 2 AND user_id == 4") {
print(item)
}
答案 2 :(得分:-1)
尝试一下:
for item in realm.objects(data.self).filter("id = %@ OR id == %@",2,4) {
print(item)
}