从Int列中获取最大值的最佳和最有效的方法是什么?
想法A
let maxId = realm.objects(Books).sorted("id").last
理念B
let maxId = realm.objects(Books).sorted("id", ascending: false).first
还是另一个想法?
(是的,我的代码片段只返回ID最高的对象,而不是实际值)
答案 0 :(得分:18)
继续@ ProblemSlover的回答。我创建了一个小应用程序,它将10000个记录抛出到一个领域类中 - 调用一个函数来获取最大值并使用它来设置ID列。我想看一些指标(我跑了3次以获得平均值)。正如您所看到的,MAX功能比排序/最后一次快2.3倍,比上升/第一快近8倍。有时候知道这件事很好。 :)
答案 1 :(得分:14)
我相信它应该以下列方式工作
if let maxValue = realm.objects(Books).max("id") as Int?{
// Do some stuff
}
或者只是
let maxValue = realm.objects(Books).max("id") as Int?
为了使我的答案完整,我决定添加代码来获取最小值:
realm.objects(Books).min("id") as Int?
答案 2 :(得分:1)
Swift 4和Xcode 9.3
我尝试了ProblemSlover的答案-但这不再起作用...
但是尝试一下:
let maxValue = realm.objects(Books).max(ofProperty: "id") as Int?