2016-10-07 27 views
0

想知道是否有人曾面臨&解決了這個問題:境界+迅速分揀

說明

我有2類稱爲 & ,當一個人可以有一個以上的狗。

class Dog: Object { 
    dynamic var name = "" 
    dynamic var age = 0 
} 


class Person: Object { 
    dynamic var name = "" 
    dynamic var picture: NSData? = nil // optionals supported 
    let dogs = List<Dog>() 
} 

根據我的要求,我需要從person.name獲取所有對象==「ABC」 &應用排序所有的狗的名字。

段:

let realm = try! Realm() 

let result = realm.objects(Person.self).filter("name == %@","ABC").sorted(property : "name") 

從上面的代碼中,排序是基於人的名稱做了不上狗的名字。

如何創建一個過濾器&按狗名稱排序列表?

+0

是[這](http://stackoverflow.com/questions/33742434/filter-realm-objects-based-on-counting-listt/33744464)類似的情況? –

+0

@Ahmad Nope。在那個鏈接中,他們正在用自己的id排序,但在我的情況下,我需要按照子類名進行排序 – Anand

回答

1

realm.objects(Person.self)返回Results<Person>。調用sorted()Results<Person>表示對Person進行排序。如果您想對dogs進行排序,您可以先檢索人的元素(例如let person = result[0]),然後檢索dogs屬性,然後調用sorted()方法。

let people = realm.objects(Person.self).filter("name == %@","ABC") 
let person = people.first! 
let sortedDogs = person.dogs.sorted(property : "name")