我正在尝试使用此查询获取具有最大id的ítem
realm.objects(Entity).filter("@max.id").first
抛出一个错误,指出无法解析查询,因此看来这不是正确的方法。
如何在Realm for Swift上编写此查询?
最佳答案
筛选器无法完成您想要做的事情,因为它们一次只考虑一个顶级对象。
除了这个概念性问题之外,您发布的代码还存在一些问题:
@"@max.id"
不是有效的 NSPredicate
format string。 NSPredicate
格式的字符串必须由表达式之间的比较组成,而不是单独的表达式。 @max
)必须应用于集合。在您的示例中,它将应用于Entity
。由于Entity
不是集合,因此该谓词无效。但是,将集合运算符应用于List
上的Entity
属性是有效的。 类似于以下内容的内容应该可以满足您的需求:
let entities = realm.objects(Entity)
let id = entities.max("id") as Int?
let entity = id != nil ? entities.filter("id == %@", id!).first : nil