Sono un programmatore iOS principiante e uso il modello Model-View-Controller come modello di progettazione: il mio modello non sa nulla della mia vista (per renderla compatibile con qualsiasi vista), la mia vista non sapere qualcosa sul mio modello in modo che interagiscano tramite il mio controller. Un modo molto usuale per una vista di interagire con il controller è attraverso la delega: quando l'utente interagisce con l'app, la mia vista notificherà il mio controller, che può chiamare alcuni metodi del mio modello e aggiornare la mia vista, se necessario.
Tuttavia, avrebbe senso rendere il mio controller il delegato del mio modello? Non sono convinto che questa sia la strada da percorrere. Potrebbe essere utile che il mio modello comunichi al mio controllore che alcuni processi siano finiti, per esempio, o per chiedere un input extra dell'utente se non ha abbastanza informazioni per completare l'operazione. Il lato negativo di questo, però, è che il mio controller sarebbe il delegato sia per il mio controller che per il mio modello, quindi non ci sarebbe davvero un modo corretto per notificare il mio modello di modifiche nella mia vista, e viceversa. (correggimi se sbaglio.)
Conclusione: non penso davvero che sia una buona idea avere il mio controller come delegato del mio modello, ma il fatto di essere il delegato della mia opinione andrebbe bene. È così che la maggior parte dei modelli MVC è gestita? O c'è un modo per avere il controller come delegato sia del controller che del modello, con una corretta comunicazione tra loro?
Come ho detto, sono un principiante, quindi voglio fare queste cose nel modo giusto immediatamente, piuttosto che spendere un sacco di ore su modelli che non funzioneranno comunque. :)