Lokalizacje w danych podstawowych posortowane według odległości za pomocą NSFetchedResultsController?
Mam zbiór obiektów encji w mojej bazie danych podstawowych iOS, które opisują coś w lokalizacji. Zadzwońmy do jednostki Lokalizacja. Zaimplementowałem to, mając dwa atrybuty w lokalizacji, które odnoszą się do lokalizacji - szerokość i długość geograficzna, oba podwajają. Istnieją inne elementy, takie jak imię.
Korzystam z NSFetchedResultsController, aby powiązać podmioty do UITableViewController. To, co chciałbym zrobić, to posortować wyniki według odległości do danego CLLocationCoordinate2D. W naprawdę idealnym scenariuszu mogę odświeżyć tę listę, aby przeliczyć sortowanie na podstawie nowej lokalizacji. Dlatego ten rodzaj zależałby od dwóch kluczy i trzeciej „statycznej” zmiennej (takiej, która nie różni się w poszczególnych elementach kolekcji).
Myślę, że mógłbym dowiedzieć się, jak to zrobić, jeśli sortowałem dowolną listę za pomocą NSSortDescriptors. Nie kontroluję jednak, jak deskryptory sortowania są używane w kontrolerze NSFetchedResultsController.
Czy istnieje sposób, aby skonfigurować moje elementy, mój NSFetchedResultsController, mój NSSortDescriptors itp., Aby to osiągnąć? Podejrzewam, że odpowiedź nie polega na tworzeniu fantazyjnego NSSortDescriptor, ale na tworzeniu atrybutu przejściowego w jednostce reprezentującej odległość do mnie i okresowego przeliczania tego atrybutu. Jednak jestem wystarczająco nowy w Core Data, że nie jestem pewien, jak najlepiej to zrobić (iteruj po wszystkich obiektach i ponownie oblicz pole). Nie jestem też pewien, czy NSSortDescriptors będą działać na atrybutach przejściowych.