2016-10-07 29 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")