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

Swift2 从Int列获取最大值的最佳和最有效的方法是什么?,swift2,realm,Swift2,Realm,从Int列获取最大值的最佳和最有效的方法是什么 想法A let maxId = realm.objects(Books).sorted("id").last 想法B let maxId = realm.objects(Books).sorted("id", ascending: false).first 还是别的主意 (是的,我的代码片段将只返回具有最高ID的对象,而不是实际值)我认为它应该以以下方式工作 if let maxValue = realm.objects(Books).ma

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

想法A

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

let maxId = realm.objects(Books).sorted("id", ascending: false).first
还是别的主意


(是的,我的代码片段将只返回具有最高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”)为Int?

以下是@ProblemSlover的答案。我创建了一个小应用程序,将10000条记录抛出到一个领域类中——调用一个函数获取最大值,并使用该函数设置ID列。我想看看一些指标(我运行了3次测试以获得平均值)。如您所见,MAX函数比sorted/last快2.3倍,比summeding/first快近8倍。有时候知道这件事很好。:)


Swift 4和Xcode 9.3

我试过ProblemSlover的答案-但它不再起作用了

但是试一下:

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

只要查看领域的源代码,就会发现一个方法
max(属性:String)
。最终结果应该如下所示
Realm()。文档肯定指出了您建议的可能。我尝试了各种组合来使用“max”,但没有成功。如果我的建议听起来很幼稚,很抱歉,但您是否尝试过这样做?
realm.objects(Books.max)(“id”)作为Int?
任何否决我答案的人都应该留下评论为什么!感谢这个图表。有人能解释升序/第一和排序/最后之间的巨大差异吗?