Царство: сортировка по свойству в дочернем объекте
Мой объект Показать выглядит следующим образом:
class Show: RLMObject {
dynamic var venue: Venue?
}
и мой объект объекта:
class Venue: RLMObject {
dynamic var title = ""
}
Мне нужно иметь возможность сортировать объекты Show по их названиям объектов Venue. Я попробовал следующее, но получил ошибку:
allShowsByLocation = Show.allObjects().sortedResultsUsingProperty("venue.title", ascending: true)
Ошибка: Недопустимый столбец сортировки ', причина:' Столбец с именем '(null)' не найден.
Ответы
Ответ 1
Царство еще не поддерживает сортировку 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 # 1199, чтобы следить за нашим прогрессом в поддержке сортировки суб-свойств.
Ответ 2
Мне очень грустно, когда Realm не поддерживает эту функцию.
Я попробую другое решение для этой проблемы, и он хорошо работает
- копировать все объекты в RLMResults в массив
- Сортировка югу от объекта в массиве с использованием сравнения