2010-04-19 30 views
5

OK, así que tengo dos entidades en mi modelo de datos (digamos entityA y entityB), estas dos entidades tienen una relación de muchos a la otra.¿Cómo lidiar con muchas o muchas relaciones con NSFetchedResultsController?

He configurado un NSFetchedResultsController para recuperar un grupo de entityA. Ahora estoy tratando de que los nombres de las secciones para la vista de tabla sean el título de entityB.

sectionNameKeyPath:@"entityB.title" 

Ahora bien, esto provoca un problema, donde el nombre de la sección de regresar de esa relación parece ser ({título1}) o ({título1, title2 ... titleN}), obviamente, dependiendo de cuántos de entityB son diferentes involucrado. Esto no se ve muy bien en una vista de tabla y no agrupa los objetos como me gustaría.

Lo que me gustaría es una sección por título de entityB con entityA apareciendo debajo de cada sección, bajo múltiples secciones si es necesario. No sé cómo se supone que debo lograr esto si necesito actualizar el predicado para hacer que la entidad aparezca varias veces o si necesito actualizar la sección y las funciones del encabezado para hacer algún procesamiento a medida que el controlador pasa por el objetos.

Cualquier ayuda se agradece :)

Gracias

Respuesta

5

Va a conseguir que debido a la llamada @ "entityB.title" va a devolver una matriz | conjunto de títulos. Eso es lo que está viendo, ya que se traduce en:

NSSet *titles = [myEntityA [email protected]"entityB.title"]; 

Para solucionar este problema, es necesario revertir su NSFetchedResultsController de manera que esté recogiendo objetos EntityA través de objetos EntityB. Entonces su sección KeyPath (y su clasificación principal) sería contra @ "título".

+0

No sé cómo obtener NSFetchedResultsController para buscar objetos EntityA a través de objetos EntityB, pero acabo de buscar objetos EntityB y utilicé los métodos UITableViewDataSource para obtener EntityA de lo que me dio NSFetchedResultsController. Terminó no siendo tan malo como originalmente pensé que sería. – hanleyp

+1

Tratando de hacer esto yo mismo. Phil o Marcus, ¿puedes exponer un poco más sobre cómo hacer esto? Mirando todo en stackoverflow y google, no teniendo mucha suerte. Agradecería cualquier ayuda. – SAHM

+0

@JPK: abra una nueva pregunta que describa su problema exacto y luego pueda exponerlo. –

Cuestiones relacionadas