Soy nuevo en el desarrollo de iOS, por lo que agradecería algunos comentarios.Comunicación entre el modelo y el controlador: iOS
Estoy tratando de construir un cliente iOS para mi servicio web. Hasta ahora esto es lo que he hecho:
Estoy implementando dos vistas (aplicación basada en la utilidad usando Storyboard). En la vista principal, utilizo un campo de texto y un botón de búsqueda, donde el usuario puede ingresar una consulta y luego hacer clic en el botón de búsqueda. Una vez que se hace clic en el botón de búsqueda, mi intención es leer el valor del campo de texto y usarlo en mi llamada de descanso a mi servicio web. Mi servicio web responde con un archivo JSON con los resultados de la consulta, que analizo y muestro en el área de texto de la vista secundaria.
Sé cómo hacer la llamada tranquila en iOS y cómo hacer el análisis JSON, así como mostrar los resultados en la pantalla (al menos las cosas de texto, pero esa es otra pregunta diferente). Pero mi intención es aprender e implementar los principios básicos de MVC para mi aplicación.
Según MVC, el controlador actualiza la vista, y el modelo envía una notificación de transmisión que el controlador puede escuchar y saber si hay algún cambio en el objeto. Entonces, esto es lo que idealmente me gustaría hacer:
Mi modelo: mi modelo manejaría la llamada REST, consideraría la respuesta JSON, la analizaría y obtendría los valores resultantes que quiero mostrar en la vista.
Mi controlador - Me gustaría que mi controlador escuche mi modelo y obtenga los valores resultantes de Model y los muestre en View.
Usando una manera rápida y sucia, puedo implementar la llamada RESTful, el análisis JSON y mostrar los valores resultantes, todo dentro del Controlador, pero con esta técnica, si mi vista cambia mañana, entonces tengo que volver a escribir mi código . O si quiero agregar nuevas funciones, entonces tengo que cambiar mi controlador. Así que, idealmente, me gustaría tener un modelo básico que no tenga conocimiento de cómo se ve la vista, y simplemente dejemos que el controlador tome los resultados del modelo y los muestre en la vista.
Según lo que he leído hasta ahora en los resultados de búsqueda de Google, dos formas de hacerlo son a) Observación de valores clave yb) Centro de notificaciones.
Durante los últimos 2 días, estoy tratando de encontrar una buena manera de implementar el centro de notificaciones o leer más sobre él, no estoy obteniendo una buena pista. Algunas de las preguntas que tengo son, ¿puedo enviar el valor de resultados de String usando el centro de notificaciones que mi controlador selecciona? ¿Cómo funciona realmente el Centro de notificaciones con los valores de cadena? ¿Dónde puedo encontrar algunos buenos ejemplos?
Así que cualquier ayuda con respecto a esto será muy apreciada.
¿Realmente desea que su MODELO maneje la comunicación con el servicio RESTful? – Till