我的Show对象如下所示:
class Show: RLMObject {
dynamic var venue: Venue?
}
Run Code Online (Sandbox Code Playgroud)
和我的Venue对象:
class Venue: RLMObject {
dynamic var title = ""
}
Run Code Online (Sandbox Code Playgroud)
我需要能够通过Venue对象的标题对Show对象进行排序.我尝试了以下但出现了错误:
allShowsByLocation = Show.allObjects().sortedResultsUsingProperty("venue.title", ascending: true)
Run Code Online (Sandbox Code Playgroud)
错误是:无效的排序列',原因:'找不到列'(null)'.
Realm尚不支持RLMResults按子属性排序.作为解决方法,您可以查询Venues并返回每个索引的链接对象:
allVenues = Venue.allObjects().sortedResultsUsingProperty("title", ascending: true)
func showAtIndex(index: UInt) -> Show {
return (allVenues[index] as Venue).linkingObjectsOfClass("Show", forProperty: "venue")
}
Run Code Online (Sandbox Code Playgroud)
或者您可以简单地venueTitle向Show模型添加属性,然后允许您的查询工作:
allShowsByLocation = Show.allObjects().sortedResultsUsingProperty("venueTitle", ascending: true)
Run Code Online (Sandbox Code Playgroud)
您还可以订阅GitHub问题#1199,以了解我们在支持子属性排序方面的进展.