Forzar la actualización de NSFetchedResultsController cuando el conteo de asociación cambia -- iphone campo con uitableview campo con core-data campo con uikit campo con nsfetchedresultscontroller camp Relacionados El problema

Force NSFetchedResultsController update when association count changes


4
vote

problema

Español

Tengo un NSFetchedResultsController que muestra una lista de elementos en una vista de tabla, incluido un recuento de una entidad asociada. Cuando se agrega un objeto para esta asociación (usando AddXXXOBJECT), no se llaman a las devoluciones de llamada para notificar a mi controlador de la actualización.

¿Cómo puedo recibir una notificación de un objeto que se agrega al NSSET de la entidad de los padres, o también obliga al controlador de resultados recuperados para actualizar?

Para ser claro, actualmente estoy recuperando el recuento con los padres.children.count, que puede ser subóptimo. ¿Hay una mejor manera de recorrer todo esto? Básicamente, solo es una pantalla como la aplicación de correo del iPhone, con carpetas que muestran un conteo de mensajes en el interior.

Original en ingles

I have an NSFetchedResultsController which displays a list of items in a table view, including a count of an associated entity. When an object is added for this association (using addXXXObject), no callbacks are called to notify my controller of the update.

How can I receive a notification of an object being added to the parent entity's NSSet, or otherwise force the fetched results controller to update?

To be clear, I'm currently retrieving the count using parent.children.count, which may be suboptimal. Is there a better way to go about this whole thing? It's basically just a screen like the iPhone Mail app, with folders showing a count of messages inside.

              

Lista de respuestas

0
 
vote

Mi modelo es un poco diferente, pero se puede traducir fácilmente a su uno.
Tengo una estructura similar a un árbol:

    elemento
    • Título
    • padre (a uno)
  • Carpeta: Elemento
    • niños (a muchos)
  • Archivo: Elemento

Cuando se agrega o elimina un archivo, solo la primera carpeta en la cola se notifica sobre este cambio. Cuando cambia el título de un archivo, no se notificará una sola carpeta. Entonces, ¿qué hacer?
Intenté anular -willchangevalueforey: y -didchangevalueforey: en mi clase de elemento.

  - (void)willChangeValueForKey:(NSString *)key {     [super willChangeValueForKey:key];     [self.parent willChangeValueForKey:@"children"]; }  - (void)didChangeValueForKey:(NSString *)key {     [super didChangeValueForKey:key];     [self.parent didChangeValueForKey:@"children"]; }   

Básicamente, lo que hace esto está obligando a la carpeta principal para actualizarse porque uno de sus hijos cambió.
Espero que también funcione para usted.

 

My model is a little different, but it can easily be translated to your one.
I got a tree-like structure:

  • Element
    • title
    • parent (to-one)
  • Folder : Element
    • children (to-many)
  • File : Element

When a file gets added or deleted, only the first folder in the queue up gets notified about this change. When a file's title changes, not a single folder would get notified. So, what to do?
I tried overriding -willChangeValueForKey: and -didChangeValueForKey: in my Element class.

- (void)willChangeValueForKey:(NSString *)key {     [super willChangeValueForKey:key];     [self.parent willChangeValueForKey:@"children"]; }  - (void)didChangeValueForKey:(NSString *)key {     [super didChangeValueForKey:key];     [self.parent didChangeValueForKey:@"children"]; } 

Basically, what this does is forcing the parent folder to update because one of its children changed.
Hope it works for you, too.

 
 

Relacionados problema

0  Preparando un Uitextfield con datos básicos y NSFetchedResultsControllers  ( Prepopulating a uitextfield with core data and nsfetchedresultscontrollers ) 
Tengo una aplicación simple y necesito un poco de ayuda con una nueva característica. La aplicación es una vista de tabla (TV1) que está poblada por el usua...

2  Objetivo-C - nsfetchedresultcontroller ¡Actualización?  ( Objective c nsfetchedresultcontroller update ) 
Entonces, estoy usando un NSFetchedResultController para mostrar los datos en mi tabla. Estoy recibiendo una notificación de actualización, y ambos índice y N...

0  Preguntas de NSFetchedResultController  ( Nsfetchedresultcontroller questions ) 
Actualmente estoy usando NSFetchedResultController para obtener los datos mostrados. Sin embargo, tengo dos preguntas al respecto: 1) Cuando configure la pr...

6  NSFetchedResultsController pierde actualizaciones en Musmed NSManAdedObjectContext  ( Nsfetchedresultscontroller misses updates on merged nsmanagedobjectcontext ) 
Tengo dos contextos de objetos administrados, A y B. Estos dos contextos se mantienen en sincronización al fusionar cambios de uno a otro cada vez que se guar...

0  Pasando una fecha entre los controladores de vista con un elemento de botón de barra de navegación y datos principales  ( Passing a date between view controllers with a navigation bar button item and co ) 
Estoy llegando a través de un problema que no estoy seguro de cómo trabajar. Tengo un controlador de vista de tabla (TV1) que está incrustado en una barra d...

0  no se puede convertir el valor de la 'tarea' de tipo para el tipo de argumento esperado 'cursos'  ( Cannot convert value of type task to expected argument type coursework ) 
De acuerdo, así que estoy teniendo un problema con mi controlador de resultados Fetch. El problema parece ser que al pedirle que tire los datos de otra tabla,...

4  Datos básicos: Error de aplicación seria  ( Core data serious application error ) 
Estoy terminando mi aplicación de datos básicos ANS que comencé mi prueba final. Everyfing funciona bien, excepto una cosa, que sucede aleatoriamente y no...

1  Ancla una fila con nsfetchedresultscontroller  ( Anchor a row with nsfetchedresultscontroller ) 
Estoy tratando de hacerlo para que mi UITableView siempre tiene una fila específica en la parte inferior, anclada allí. Estoy usando un NSFetchedResultsC...

8  UitableView Mantenga el desplazamiento en la posición correcta al actualizar NSFetchedResultSroller  ( Uitableview keep the scroll at the correct position while updating nsfetchedresu ) 
Estoy desarrollando una aplicación iOS que utiliza principalmente un UITableView . Recupera páginas de artículos de un servidor. Tenemos y GT; 25000 artículo...

14  Cómo usar NSFetchedResultSroller y UISARCHDISPLAYCONTROLLER  ( How to use nsfetchedresultscontroller and uisearchdisplaycontroller ) 
He estado creando una aplicación de iPhone usando datos principales. En primer lugar, ¿tiene sentido usar un NSFetchedResultsController y un Controlador UIS...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos