从Int列获取最大值的最佳和最有效的方法是什么?
想法A.
let maxId = realm.objects(Books).sorted("id").last
Run Code Online (Sandbox Code Playgroud)
想法B.
let maxId = realm.objects(Books).sorted("id", ascending: false).first
Run Code Online (Sandbox Code Playgroud)
还是另一个想法?
(是的,我的代码片段只会返回ID最高的对象,而不是实际值)
Ian*_*ury 19
继@ ProblemSlover的回答之后.我创建了一个小应用程序,它将10000个记录抛出到一个领域类中 - 调用一个函数来获取最大值并使用它来设置ID列.我想看一些指标(我跑了3次以获得平均值).正如您所看到的,MAX功能比排序/最后一次快2.3倍,比上升/第一快近8倍.有时候知道这件事很好.:)
Pro*_*ver 15
我相信它应该以下列方式工作
if let maxValue = realm.objects(Books).max("id") as Int?{
// Do some stuff
}
Run Code Online (Sandbox Code Playgroud)
要不就
let maxValue = realm.objects(Books).max("id") as Int?
Run Code Online (Sandbox Code Playgroud)
为了使我的答案完整,我决定添加代码来获取最小值:
realm.objects(Books).min("id") as Int?
Swift 4 和 Xcode 9.3
我尝试了 ProblemSlover 的答案 - 但它不再起作用了......
但尝试一下:
let maxValue = realm.objects(Books).max(ofProperty: "id") as Int?
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2435 次 |
| 最近记录: |