Ios 领域:按子对象中的属性排序
我的Show对象如下所示: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
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中的所有对象复制到数组
- 使用比较对数组中对象的子属性排序