Расположение в основных данных, отсортированных по расстоянию через NSFetchedResultsController?

У меня есть набор объектов сущностей в моей базе данных iOS Core Data, которые описывают что-то на месте. Давайте назовем объект Location. Я реализовал это, имея два атрибута Location, которые ссылаются на местоположение - широта и долгота, оба удваиваются. Есть и другие элементы, такие как имя.

Я использую NSFetchedResultsController для привязки сущностей к UITableViewController. То, что я хотел бы сделать, это отсортировать результаты по расстоянию до заданного CLLocationCoordinate2D. В действительно идеальном сценарии я могу обновить этот список, чтобы пересчитать сортировку на основе нового местоположения. Следовательно, этот вид будет зависеть от двух ключей и третьей «статической» переменной (той, которая не зависит от элементов в коллекции).

Я думаю, я мог бы выяснить, как это сделать, если бы я сортировал произвольный список с NSSortDescriptors. Однако я не контролирую, как дескрипторы сортировки используются в NSFetchedResultsController.

Есть ли способ, которым я мог бы настроить мои сущности, мой NSFetchedResultsController, мои NSSortDescriptors и т. Д. Для достижения этой цели? Я подозреваю, что ответ заключается не в создании причудливого NSSortDescriptor, а в создании переходного атрибута в объекте, который представляет расстояние до меня, и периодического пересчета этого атрибута. Тем не менее, я достаточно новичок в Core Data, поэтому я не уверен, как лучше всего это сделать (перебрать все сущности и пересчитать поле). Я также не уверен, будут ли NSSortDescriptors работать с переходными атрибутами.

Ответы на вопрос(2)

Ваш ответ на вопрос