Ios 领域:按子对象中的属性排序

Ios 领域:按子对象中的属性排序,ios,swift,realm,Ios,Swift,Realm,我的Show对象如下所示: class Show: RLMObject { dynamic var venue: Venue? } 我的目标是: class Venue: RLMObject { dynamic var title = "" } 我需要能够根据场地对象的标题对我的演出对象进行排序。我尝试了以下操作,但出现错误: allShowsByLocation = Show.allObjects().sortedResultsUsingProperty("venue.ti

我的Show对象如下所示:

class Show: RLMObject {
    dynamic var venue: Venue?
}
我的目标是:

class Venue: RLMObject {
    dynamic var title = ""
}
我需要能够根据场地对象的标题对我的演出对象进行排序。我尝试了以下操作,但出现错误:

allShowsByLocation = Show.allObjects().sortedResultsUsingProperty("venue.title", ascending: true)

错误是:排序列无效,原因:未找到“名为”(null)的列。

领域尚不支持按子属性排序
RLMResults
。作为一种解决方法,您可以查询
vention
s并返回每个索引的链接对象:

allVenues = Venue.allObjects().sortedResultsUsingProperty("title", ascending: true)

func showAtIndex(index: UInt) -> Show {
  return (allVenues[index] as Venue).linkingObjectsOfClass("Show", forProperty: "venue")
}
或者,您可以简单地将
venueTitle
属性添加到
Show
模型中,然后允许您的查询工作:

allShowsByLocation = Show.allObjects().sortedResultsUsingProperty("venueTitle", ascending: true)

您也可以订阅以了解我们在支持子属性排序方面的进展。

当Realm不支持此功能时,我感到非常难过。 我尝试了另一种解决这个问题的方法,效果很好

  • 将RLMResults中的所有对象复制到数组
  • 使用比较对数组中对象的子属性排序

但这不是自动更新