¿Ubicaciones en Core Data ordenadas por distancia a través de NSFetchedResultsController?
Tengo un conjunto de objetos de entidad en mi base de datos de Datos Core de iOS que describen algo en una ubicación. Llamemos a la entidad Ubicación. He implementado esto al tener dos atributos en la ubicación que se refieren a la ubicación: latitud y longitud, ambos se duplican. Hay otros elementos, como el nombre.
Estoy utilizando un NSFetchedResultsController para enlazar las entidades a un UITableViewController. Lo que me gustaría hacer es ordenar los resultados por distancia a un CLLocationCoordinate2D dado. En un escenario realmente ideal, puedo actualizar esa lista para recalcular la clasificación en función de una nueva ubicación. Por lo tanto, este tipo dependería de dos claves y una tercera variable "estática" (una que no varía entre los elementos de la colección).
Creo que podría averiguar cómo hacer esto si estuviera clasificando una lista arbitraria con NSSortDescriptors. Sin embargo, no controlo cómo se usan los descriptores de clasificación en un NSFetchedResultsController.
¿Hay alguna forma de configurar mis entidades, mi NSFetchedResultsController, mis NSSortDescriptors, etc. para lograr esto? Sospecho que la respuesta no radica en crear un NSSortDescriptor sofisticado sino en crear un atributo transitorio en la entidad que representa la distancia hasta mí, y recalcular periódicamente ese atributo. Sin embargo, soy lo suficientemente nuevo para Core Data que no estoy seguro de cómo hacerlo mejor (iterar sobre todas las entidades y recalcular un campo). Tampoco estoy seguro de si NSSortDescriptors funcionará en atributos Transitorios.