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

What is the best and most efficient method of fetching the maximum value from an Int column?

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

想法 A

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

想法 B

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

或者其他想法?

(是的,我的代码片段只会 return 具有最高 ID 的对象,而不是实际值)

我认为它应该按以下方式工作

 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?

继@ProblemSlover 的回答之后。我创建了一个小应用程序,将 10000 条记录放入一个领域 class - 调用一个函数来获取最大值并使用它来设置 ID 列。我想查看一些指标(我 运行 测试了 3 次以获得平均值)。如您所见,MAX 函数比 sorted/last 快 2.3 倍,比 ascending/first 快近 8 倍。有时候很高兴知道。 :)

Swift 4 和 Xcode 9.3

我尝试了 ProblemSlover 的回答 - 但它不再有效...

但试一试:

let maxValue =  realm.objects(Books).max(ofProperty: "id") as Int?