如何获取Realm中最具代表性的价值?
How to get the most represented value in Realm?
我对 iOS 上的 Realm 有疑问。
我的领域数据库中有一个如下所示的对象:
class MyObject: Object {
dynamic var id: Int!
dynamic var val: String!
}
假设我用这些数据填充了我的 table:
| id | val |
|----|-----|
| 1 | A |
| 2 | B |
| 3 | A |
| 4 | B |
| 5 | A |
| 6 | A |
如何查询我的领域数据库 return 最有代表性的值是 A?
谢谢
Realm 没有可以完全做到这一点的本机查询,但您可以将 Realm 的 KVC 支持与 NSCountedSet 相结合以相当容易地实现这一点:
import Foundation
import RealmSwift
class MyObject: Object {
dynamic var id: Int = 0
dynamic var val: String = ""
}
let realm = try! Realm()
try! realm.write {
for (index, value) in ["A", "B", "A", "B", "A", "A"].enumerate() {
realm.create(MyObject.self, value: [index, value])
}
}
let values = realm.objects(MyObject).valueForKey("val") as! [AnyObject]
let countedSetOfValues = NSCountedSet(array: values)
let maxElement = countedSetOfValues.allObjects.maxElement { first, second in
return countedSetOfValues.countForObject(first) < countedSetOfValues.countForObject(second)
}
maxElement // => "A"
我对 iOS 上的 Realm 有疑问。
我的领域数据库中有一个如下所示的对象:
class MyObject: Object {
dynamic var id: Int!
dynamic var val: String!
}
假设我用这些数据填充了我的 table:
| id | val |
|----|-----|
| 1 | A |
| 2 | B |
| 3 | A |
| 4 | B |
| 5 | A |
| 6 | A |
如何查询我的领域数据库 return 最有代表性的值是 A?
谢谢
Realm 没有可以完全做到这一点的本机查询,但您可以将 Realm 的 KVC 支持与 NSCountedSet 相结合以相当容易地实现这一点:
import Foundation
import RealmSwift
class MyObject: Object {
dynamic var id: Int = 0
dynamic var val: String = ""
}
let realm = try! Realm()
try! realm.write {
for (index, value) in ["A", "B", "A", "B", "A", "A"].enumerate() {
realm.create(MyObject.self, value: [index, value])
}
}
let values = realm.objects(MyObject).valueForKey("val") as! [AnyObject]
let countedSetOfValues = NSCountedSet(array: values)
let maxElement = countedSetOfValues.allObjects.maxElement { first, second in
return countedSetOfValues.countForObject(first) < countedSetOfValues.countForObject(second)
}
maxElement // => "A"