ios - 如何获取具有最大 ID 的项目?

标签 ios swift realm

我正在尝试使用此查询获取具有最大 ID 的项目

realm.objects(Entity).filter("@max.id").first

它抛出一个错误,说无法解析查询,所以这似乎不是正确的方法。

如何在 Realm for Swift 上编写此查询?

最佳答案

单独使用过滤器无法完成您的任务,因为它们一次只考虑一个顶级对象。

除了这个概念性问题之外,您发布的代码还存在一些问题:

  1. @"@max.id" 不是有效的 NSPredicate format string . NSPredicate 格式字符串必须由表达式之间的比较组成,而不是表达式本身。

  2. @max 等集合运算符必须应用于集合。在您的示例中,它被应用于 Entity。由于 Entity 不是集合,因此谓词无效。不过,将集合运算符应用于 Entity 上的 List 属性是有效的。

像下面这样的东西应该可以满足您的需求:

let entities = realm.objects(Entity)
let id = entities.max("id") as Int?
let entity = id != nil ? entities.filter("id == %@", id!).first : nil

关于ios - 如何获取具有最大 ID 的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32804266/

相关文章:

android - "config.h file not found"怎么解决?从设备上的 native react 运行应用程序时?

ios - 如何为按钮设置动画以显示右侧 View 并在点击时弹回

android - 如何在 Android 中进行 Realm 迁移?

ios - 在 MongoDB Realm 同步中建模子集合

ios - 如何生成最多4个但总共16次但重复次数不超过4次的随机值

ios - 在 iOS 中使用 AVPlayerItem 向后擦洗是否与向前擦洗一样流畅?

objective-c - 替换字符串中的字母

ios - libc++abi.dylib : terminating with uncaught exception of type NSException without the regular error message

swift - 如何快速更改图像方向

ios - 关于 Realm 数据库中的事务