Domanda

Sto cercando di venire con un buon design, mentre l'attuazione Store Kit.

Cercando di seguire MVC convention, ho il seguente

Modello: Store Observer Vista: Alcuni View che visualizza interfaccia utente (selezione del prodotto, ecc) Controller: Il mio View Controller

Se la mia View Controller istanziare un archivio Observer Class per la richiesta del prodotto e aggiornare l'interfaccia utente. E 'questo il modo corretto di fare questo?

Inoltre sto avendo problemi a determinare dove effettuare la richiesta del prodotto chiama dal momento che è ASYNC. E come posso fare per aggiornare l'interfaccia utente dopo che il prodotto Info è inverosimile (chiamo SetNeedsDisplay)

La ringrazio molto

È stato utile?

Soluzione

Si dovrebbe guardare in delegati. Si può causare le cose accadano senza rompere MVC definendo un protocollo delegato cui l'oggetto è conforme alla recitazione. È quindi possibile chiamare un metodo delegato da una chiamata al metodo definito nel protocollo delegato. L'effetto è un po 'come avere un puntatore all'oggetto e chiamare uno dei suoi metodi direttamente, ma non è lo stesso - gli oggetti sono ancora disaccoppiati e definendo il protocollo che si definisce solo ciò che si può fare in modo che non si finisce con le classi irrimediabilmente intrecciate.

L'oggetto che causa l'azione - chiamano A - definisce una proprietà delegato. Si trova a qualche oggetto, B, conforme al protocollo delegato. B deve includere lo specificatore delegato nell'intestazione per indicare che è conforme al protocollo, ed è necessario implementare ogni metodo definito nel protocollo (ad eccezione di quelle definite come optional). A può quindi chiamare i metodi in B fino a quando il protocollo li espone. Non si finisce con un avere un puntatore a B e B con un puntatore ad A. Questo è esattamente come funziona un UITableView delegati, probabilmente avete usato già.

Nel tuo caso, sembra che il controller creerà un osservatore negozio. Sarà anche implementare metodi delegato per le notifiche il modello deve inviare al controller. delegato del modello è impostato al controllore ed il controllore può essere notificata di modifiche al modello (che ha correttamente accesso a), al fine di aggiornare UI.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top