Orte in Kerndaten sortiert nach Entfernung über NSFetchedResultsController?
Ich habe eine Reihe von Entitätsobjekten in meiner iOS Core Data-Datenbank, die etwas an einem Ort beschreiben. Nennen wir das Objekt Location. Ich habe dies implementiert, indem ich zwei Attribute auf Standort festgelegt habe, die sich auf den Standort beziehen - Breitengrad und Längengrad, beide verdoppelt. Es gibt andere Elemente wie den Namen.
Ich verwende einen NSFetchedResultsController, um die Entitäten an einen UITableViewController zu binden. Ich möchte, dass die Ergebnisse nach Entfernung zu einer bestimmten CLLocationCoordinate2D sortiert werden. In einem wirklich idealen Szenario kann ich diese Liste aktualisieren, um die Sortierung basierend auf einem neuen Standort neu zu berechnen. Daher hängt diese Sortierung von zwei Schlüsseln und einer dritten "statischen" Variablen ab (eine, die sich nicht über die Elemente in der Auflistung unterscheidet).
Ich denke, ich könnte herausfinden, wie das geht, wenn ich eine beliebige Liste mit NSSortDescriptors sortiere. Ich kann jedoch nicht steuern, wie die Sortierdeskriptoren in einem NSFetchedResultsController verwendet werden.
Gibt es eine Möglichkeit, meine Entitäten, meinen NSFetchedResultsController, meine NSSortDescriptors usw. zu konfigurieren, um dies zu erreichen? Ich vermute, dass die Antwort nicht darin besteht, einen ausgefallenen NSSortDescriptor zu erstellen, sondern ein vorübergehendes Attribut in der Entität zu erstellen, das die Entfernung zu mir darstellt, und dieses Attribut regelmäßig neu zu berechnen. Ich bin jedoch neu genug für Core Data, und ich bin mir nicht sicher, wie ich das am besten machen soll (iteriere über alle Entitäten und berechne ein Feld neu). Ich bin mir auch nicht sicher, ob NSSortDescriptors mit vorübergehenden Attributen funktioniert.