¿Cómo dejar que cada clase interactúe entre sí?

Necesito ayuda para comprender el modelo MVC en entornos iPad / iPhone. De alguna manera no puedo entenderlo incluso después de leer varias veces.

Digamos que quiero crear una pequeña aplicación que almacene la ubicación de la imagen y el comentario para cada imagen. Posiblemente crearé una clase "SZImage" que almacene esta información. Además de setter y getter, ¿necesito implementar otros métodos? ¿Cuál es el papel del modelo, qué métodos puede implementar y qué no puede hacer?

Después de eso, tendré que configurar la interfaz para mostrar la imagen. Entonces necesito crear otra clase con el nombre "SZImageView". ¿Cuál es el papel de esta clase? Se dibuja en la ventana del iPhone o se lo dejo al controlador para que haga el trabajo. Si dejo que el controlador dibuje, ¿por qué debería crear esta clase?

Y si necesito tener un controlador para ser el puente entre el modelo y la vista, entonces se debe crear una clase con el nombre "SZImageViewController". ¿Qué debe hacer esta clase?

Por último, este es el que me ha estado confundiendo durante mucho tiempo. ¿Cómo puedo usar el método en otra clase para agregar una ventana al AppDelegate? ¿Cómo se realiza la interacción entre la instancia dentro de la clase? Porque veo que el AppDelegate suele ser muy corto y simple.

Respuestas a la pregunta(2)

Su respuesta a la pregunta