【问题标题】:Realm + swift sorting领域+快速排序
【发布时间】:2016-10-07 10:54:44
【问题描述】:

想知道是否有人遇到并解决了这个问题:

说明

我有 2 个类别,分别称为 PersonDog,其中一个人可以养多只狗。

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")

从上面的 sn-p 中,排序是根据人名而不是狗名进行的。

如何创建过滤器并按狗名排序?

【问题讨论】:

  • this和你的情况类似吗?
  • @Ahmad 不。在该链接中,他们使用 id 进行排序,这是 self 但在我的情况下,我需要按子类名排序

标签: iphone swift realm


【解决方案1】:

realm.objects(Person.self) 返回Results&lt;Person&gt;。将sorted() 调用到Results&lt;Person&gt; 意味着对Person 进行排序。如果要对dogs进行排序,可以先检索person的元素(如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")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    相关资源
    最近更新 更多