我的Show对象如下所示:
class Show: RLMObject {
dynamic var venue: Venue?
}
和我的Venue对象:
class Venue: RLMObject {
dynamic var title = ""
}
我需要能够通过Venue对象的标题对我的Show对象进行排序。我尝试了以下但是出现了错误:
allShowsByLocation = Show.allObjects().sortedResultsUsingProperty("venue.title", ascending: true)
错误是:排序列无效',原因:'列名为'(null)'没找到。
答案 0 :(得分:9)
Realm尚不支持通过子属性对RLMResults
进行排序。作为解决方法,您可以查询Venue
并返回每个索引的链接对象:
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)
您还可以订阅GitHub issue #1199以关注我们在支持子属性排序方面的进展。
答案 1 :(得分:0)
当Realm不支持此功能时,我感到非常难过。 我为这个问题尝试了另一个解决方案,它运作良好