Ci sono diversi livelli a cui pongo questa domanda.
Caso 1: pensiamo al tipico design drill-down. Supponiamo che un controller di visualizzazione tabella abbia una matrice di oggetti personalizzati, e toccando una cella si spinge un controller di visualizzazione che consente all'utente di modificare l'oggetto rappresentato dalla cella. In questo caso, se il controller di visualizzazione push ha l'oggetto personalizzato come proprietà propria o utilizza un protocollo di origine / delega di dati per modificare l'oggetto personalizzato ma non il proprietario.
Caso 2: una situazione simile ma leggermente diversa è questa. Sto usando un negozio singleton per gestire una serie di conti bancari nella mia app. Un controller di visualizzazione mostrerà un elenco degli account e mi chiedo se dovrei avere l'array di account come proprietà nel mio controller di visualizzazione o ottenere l'array tramite il negozio. (L'array di account è accessibile abbastanza spesso.) Immagino che l'unica differenza sia un singolo oggetto contro una matrice di oggetti. Sono curioso di sapere quanto possano essere pesanti questi array, quindi se è più veloce caricare la matrice dallo store ogni volta o averla come proprietà nel controller della vista.
Caso 3: quando deve essere utilizzato il file system locale? Nell'esempio della mia app, si accede ai conti bancari abbastanza spesso, quindi li ho archiviati e impostati come proprietà al momento dell'avvio dell'app, ma per dati molto più grandi, li carico solo dal file system quando dovrebbero essere visualizzati o modificati. Non sono ancora sicuro di quale sia la strada giusta.