从Int列中获取最大值的最佳和最有效的方法是什么?创意A
let maxId = realm.objects(Books).sorted("id").last
创意B
let maxId = realm.objects(Books).sorted("id", ascending: false).first
还是另有想法?(Yes我的代码片段将只返回具有最高ID的对象,而不是实际值)
hm2xizp91#
根据@ProblemSlover的回答,我创建了一个小应用程序,它将10000条记录放入一个realm类中--调用一个函数来获取最大值,并使用该值来设置ID列。(我运行了3次测试以获得平均值)。正如你所看到的,MAX函数比sorted/last快2. 3倍,比ascending/first快近8倍。有时候知道就好了。
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?
realm.objects(Books).min("id") as Int?
czq61nw13#
斯威夫特4和Xcode 9.3
我尝试了ProblemSlover的答案-但它不再起作用了...但给予看:
let maxValue = realm.objects(Books).max(ofProperty: "id") as Int?
3条答案
按热度按时间hm2xizp91#
根据@ProblemSlover的回答,我创建了一个小应用程序,它将10000条记录放入一个realm类中--调用一个函数来获取最大值,并使用该值来设置ID列。(我运行了3次测试以获得平均值)。正如你所看到的,MAX函数比sorted/last快2. 3倍,比ascending/first快近8倍。有时候知道就好了。
fkaflof62#
我认为它应该以如下方式工作
或者只是
为了使我的答案完整,我决定添加代码来获取最小值:
realm.objects(Books).min("id") as Int?
czq61nw13#
斯威夫特4和Xcode 9.3
我尝试了ProblemSlover的答案-但它不再起作用了...
但给予看: