Domanda

Ho già avuto una domanda come questa, ma l'ho già eliminata comunque.

Ho un'app molto semplice che ha un controller di visualizzazione root e passa tra due altre visualizzazioni del controller di visualizzazione. Quindi nel mio controller di visualizzazione radice, Lazy carica le istanze degli altri due controller di visualizzazione. Ogni volta che si preme il pulsante di commutazione nella barra degli strumenti, il controller della vista corrente visualizzato (la sua vista) viene scaricato (impostato su zero) e quello nuovo viene caricato e aggiunto alla vista secondaria.

Dal momento che carico i miei controller di visualizzazione e li scarico in momenti specifici, il codice di caricamento lento che si trova nei getter è molto confuso perché non voglio caricarli nel modo giusto quando li uso, devo caricarli prima quindi l'animazione di vibrazione avrà un bell'aspetto. Quindi penso di voler creare i metodi loadFirstVC e loadSecondVC per caricare i controller di visualizzazione. È una buona idea?

È stato utile?

Soluzione

Il motivo principale del caricamento lento NON è di posticipare il caricamento che si verificherà sicuramente. Serve per rinviare il caricamento che potrebbe non essere mai necessario. (È anche utile per forzare i ricarichi quando i dati sono cambiati, ma non è questo il tuo problema qui.)

Esempio: supponiamo che tu abbia un sacco di dati su una persona, inclusa una foto, che è memorizzata in un file esterno. Ma la foto verrà visualizzata solo se l'utente passa a una sottoview, quindi perché caricare la foto dal suo file fino a quando non si è certi che la sottoview verrà visualizzata? Boom, usa il caricamento lento.

Quando sai che vuoi caricare un determinato dato, è improbabile che importi molto quando lo carichi esattamente.

Quando importa? Bene, questa è davvero una questione di ottimizzazione. C'è un detto che potresti aver incontrato; in caso contrario, è un momento buono come un altro: " L'ottimizzazione precoce è la radice di tutto il male (di programmazione). "

Quindi poniti due domande:

  1. Il pezzo di dati sarà sicuramente necessario? Se NO, procedere con la tecnica di caricamento lento. Se SÌ, vai alla domanda 2.

  2. È IMPORTANTE quando carico i dati? [Un esempio potrebbe essere, è enorme e non voglio caricarlo finché non SCARICO qualcos'altro per fare spazio per esso] Se NO, mettilo in un posto che funzioni. Se SÌ ... Torna indietro e chiedici di nuovo e fornisci maggiori dettagli.

... Sospetto che questo non risponda alla tua domanda originale, ma sembra che tu possa porre la domanda sbagliata in primo luogo. Mi scuso se sbaglio.

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