iphone - 境界+快速排序

标签 iphone swift realm

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

描述

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

从上面的代码片段中,排序是根据人名而不是狗名进行的。

如何创建过滤器并按狗名对列表进行排序?

最佳答案

realm.objects(Person.self)返回 Results<Person> .打电话sorted()Results<Person>表示排序人。如果您想对 dogs 进行排序,您可以先检索 person 的元素(例如 let person = result[0] ),然后检索 dogs属性(property),电话sorted()方法。

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

关于iphone - 境界+快速排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39915538/

相关文章:

iphone - 如何从 Xcode 通过短信发送音乐文件

ios - Swift 中 UTF16LE(无 BOM 和 0 字节结尾)的 MD5

swift - 为什么 Realm "to many"关系总是有相同的引用?

realm - 在 React Native 和 Android 之间共享 Realm 实例

iphone - UIAnimation 阻止奇怪的行为

iphone - 对于在 tableview 上快速加载图像,哪一个是可用于 iphone 的最佳方法?

ios - 强制按钮看起来被按下?

ios - 谷歌地图 iOS SDK

ios - 委托(delegate)仍然为零

ios - 如何将一个 View Controller 与不同的 Realm 类一起使用