从Int列获取最大值的最佳和最有效的方法是什么?

时间:2015-10-23 07:22:53

标签: swift2 realm

从Int列中获取最大值的最佳和最有效的方法是什么?

想法A

let maxId = realm.objects(Books).sorted("id").last

理念B

let maxId = realm.objects(Books).sorted("id", ascending: false).first

还是另一个想法?

(是的,我的代码片段只返回ID最高的对象,而不是实际值)

3 个答案:

答案 0 :(得分:18)

继续@ ProblemSlover的回答。我创建了一个小应用程序,它将10000个记录抛出到一个领域类中 - 调用一个函数来获取最大值并使用它来设置ID列。我想看一些指标(我跑了3次以获得平均值)。正如您所看到的,MAX功能比排序/最后一次快2.3倍,比上升/第一快近8倍。有时候知道这件事很好。 :)

enter image description here

答案 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?