Sto provando a implementare un cronometro basato sul modello MVC.Modello di osservatore per il cronometro
Il cronometro utilizza NSTimer con il selettore -(void) tick
chiamato ogni timeout.
Ho provato a fare del cronometro un modello per la riusabilità, ma ho riscontrato alcuni problemi di progettazione relativi all'aggiornamento del controller di visualizzazione per ogni spunta.
Per prima cosa ho creato un protocollo con il metodo tick e reso il controller di visualizzazione suo delegato. Il controller della vista aggiorna quindi le viste in base alle proprietà del timer ad ogni spunta. elapsedTime è un NSTimeInterval di sola lettura.
Funziona, ma penso che potrebbe essere un cattivo design. Sono un principiante Objective-C/Cocoa Touch. Dovrei usare qualcosa come KVO? O c'è una soluzione più elegante per il modello per notificare al controller di visualizzazione che è stato modificato elapsedTime
?
Bella prima domanda! Benvenuto in SO! –
Qual è esattamente la relazione tra il timer e il controller di visualizzazione? Il timer è di proprietà di VC? –
Grazie :) Il Timer è di proprietà del VC, sì. Ho implementato un IntervalTimer che eredita da Timer e quindi il VC possiede invece IntervalTimer - l'IntervalTimer è in realtà quello che mi dà un po 'di problemi. – Jach0