2016-05-04 3 views
0

У меня вопрос о Царстве на iOS.Как получить наиболее представленное значение в Царстве?

У меня есть объект в царстве моем DB, который выглядит следующим образом:

class MyObject: Object { 
    dynamic var id: Int! 
    dynamic var val: String! 
} 

Пусть говорят, что я заселить свою таблицу с этими данными:

| id | val | 
|----|-----| 
| 1 | A | 
| 2 | B | 
| 3 | A | 
| 4 | B | 
| 5 | A | 
| 6 | A | 

Как запросить мой Realm DB, чтобы вернуть наиболее представленное значение, которое является A?

Благодаря

ответ

1

Realm не родной запрос, который будет делать именно это, но вы можете сочетать поддержку KVC Realm с 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" 
+0

Именно то, что я искал для. Спасибо! – Nasedo47

Смежные вопросы