Cómo recuperar mediante programación de selección de tabla y fila de la tabla para la aplicación de Datos Básicos?

StackOverflow https://stackoverflow.com/questions/2259408

Pregunta

Estoy tratando de hacer una aplicación de base de datos en la que cuando se selecciona un "jugador" en un TableView, y una lista de todos los compañeros de equipo aparece en un segundo tableView, con una columna para cuántas veces han jugado esos dos jugadores en el mismo "equipo" (otra entidad).

Esto me tiene completamente atascado, porque aunque sé cómo llenar una tabla de una gama normal, usando ArrayControllers y Core de datos realmente ha estorbado mi vista de la situación.

¿Cómo acercarse a este?

¿Fue útil?

Solución

El suyo es un problema enlaces, no es un problema de Datos Básicos. : -)

Definitivamente, usted debe tener una idea de cacao Vinculaciones antes de tratar con datos básicos. Esto se afirma en los documentos y es muy cierto.

El tema de su pregunta parece ser diferente del cuerpo, por lo que voy a responder tanto.

Mostrando el compañeros de equipo

Datos Básicos de un lado, suponga que tiene una tabla que representa las instancias del jugador. Jugador tiene un equipo. Equipo tiene muchos jugadores. Por lo tanto, se infiere que una instancia de jugador tiene "team.players" (menos) en sí como compañeros de equipo. Ya sea que esté usando datos básicos para gestionar el modelo o no, este es el caso de las relaciones globales.

Si usted lee a través de cacao y maestros enlaces, usted encontrará que esto no es difícil en absoluto a la configuración mediante un básico Maestro / Detalle configuración (con un controlador de array adicional para la parte de detalle, por simplicidad ). Su controlador del conjunto de Maestro representa todas las instancias del jugador, mientras que su controlador detalle matriz representa los compañeros de equipo -. "O" team.players de selección del Maestro (menos sí)

El controlador del conjunto de compañeros de equipo tendrá su entidad y el contexto de objeto gestionado configurar como de costumbre (ver los documentos). El "ContentSet" estará obligado a tecla "selección" controlador del Maestro de controlador de matriz, con "team.players" como la ruta de la clave del modelo.

El truco es para filtrar jugador seleccionado del controlador maestro usando predicados . Esto se puede hacer con el controlador del conjunto de Filtro predicado . Tal vez uno con un formato de "auto! =% @", Donde "% @" representa la selección del Maestro del Controlador de array. Voy a dejar predicados (un tema complicado en sí mismo) para usted. Recuerde, usted puede ponerlos en el código ([myController setFilterPredicate: myPredicate]) o mediante el uso de enlaces. Los predicados son independiente de datos básicos también.

Cómo Selección

Desde el Controlador de array está a cargo de la matriz de la tabla representa, lo mejor es preguntar al controlador del conjunto de lo que es su selección. Una manera es preguntar a sus -arrangedObjets de los objetos a sus -selectedIndexes.

NSArray * selectedObjects = [[myArrayController arrangedObjects] objectsAtIndexes:[myArrayController selectedIndexes]];

También puede pedir que por sus -selectedObjects. Existen diferencias entre estos dos enfoques que se describen en la documentación (referencia de la API y documentos conceptuales) que definitivamente debe entender, pero pidiendo al controlador es el concepto más importante, independientemente de si se utiliza una NSArrayController o algún controlador personalizado que se ajusta a la y protocolos.

Renuncia: mecanografiadas a toda prisa después de una noche de Sake social. No se comprueba si hay errores. : -)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top