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

polkgigr  于 2022-11-06  发布在  Swift
关注(0)|答案(3)|浏览(183)

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

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

创意B

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

还是另有想法?
(Yes我的代码片段将只返回具有最高ID的对象,而不是实际值)

hm2xizp9

hm2xizp91#

根据@ProblemSlover的回答,我创建了一个小应用程序,它将10000条记录放入一个realm类中--调用一个函数来获取最大值,并使用该值来设置ID列。(我运行了3次测试以获得平均值)。正如你所看到的,MAX函数比sorted/last快2. 3倍,比ascending/first快近8倍。有时候知道就好了。

fkaflof6

fkaflof62#

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

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?

czq61nw1

czq61nw13#

斯威夫特4和Xcode 9.3

我尝试了ProblemSlover的答案-但它不再起作用了...
但给予看:

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

相关问题