iphone objective-c xcode nsfetchedresultscontroller

iphone - Sección transitoria NameKeyPath & NSSortDescriptor NSFetchedResultsController



objective-c xcode (1)

La solución más sencilla es agregar un atributo de "sección" persistente (o convertir su atributo transitorio existente). Conviértalo en un conjunto de valores ordenables (que se muestran en tiempo de ejecución con los nombres que desea). Siempre que actualice cualquier registro, vuelva a calcular y almacenar el atributo de sección también.

Me doy cuenta de que esto suena como si estuvieras almacenando información redundante, pero además de simplificar tu lógica, también será indexable lo que acelerará el acceso.

Tengo una lista de tareas dentro de Core Data. Los traigo en un UITableView usando un NSFetchedResultsController.

Necesito secciones personalizadas en un orden personalizado:

  1. ATRASADO
  2. ACTIVO
  3. EN MARCHA
  4. POSPUESTO
  5. TERMINADO

Para determinar en qué sección debe ir una tarea, uso un atributo transitorio derivado calculado sobre la marcha en base a otros atributos en el objeto relativo.

Desafortunadamente, no puede pasar un valor derivado como un descriptor de clasificación utilizado por una solicitud de recuperación. Esto se debe a que una búsqueda se basa en que ya tiene datos que se le pide que busque. Huevo de gallina.

Entiendo por qué no puedo hacerlo, ¡eso no me ayuda a resolver el problema!

He intentado:

  • Subclasificando NSFetchedResultsController para '' personalizar la creación de secciones y títulos de índice ''. Tal vez estoy haciendo esto mal, sin embargo, esto solo cambia los nombres y órdenes de las secciones, no la cantidad de cosas que van en esas secciones (lo cual es crítico)

  • Rellene las matrices por sección y aliméntelas a la mesa (torpe, lenta pero completamente funcional).

  • Extracción de tareas en curso y pospuestas (que funciona, pero no es lo ideal). De esta manera puedo ordenar por dueDate y manejar la secciónNameKeyPath a través de los valores transitorios.

Alguien tiene mejores ideas? Ya hay bastantes preguntas como esta, pero ninguna de ellas llega a una solución ordenada.

¡Gracias por adelantado!

Aclamaciones