Sto utilizzando Core Data nella mia prima applicazione iPhone e sto cercando di capire NSFetchedResultsController. Funziona alla grande nella mia vista principale. Devo istanziare un'istanza in ognuno dei miei controller di visualizzazione? Se è così, c'è un modello che rende questo facile come lo era nel mio controller di root (ho appena controllato una casella nel modello durante la creazione del progetto). Quando aggiungo un nuovo controller di visualizzazione, non vedo un'opzione per utilizzare i dati principali.Dovrei avere un NSFetchedResultsController in ogni vista?
Aggiornamento: Anche dopo aver tagliato/incollato il codice nella mia seconda vista, mi ci è voluto un po 'per capire che avevo anche bisogno di impostare il managedObjectContext prima di passare alla nuova visualizzazione. Ho aggiunto la seguente riga alla mia RootViewController prima di spingere la nuova vista sullo stack di navigazione:
self.newVC.managedObjectContext = self.managedObjectContext;
Grazie. Sto visualizzando una diversa entità. XCode fa qualcosa per renderlo più facile, o devo davvero tagliare/incollare quel codice per ogni vista? So che non è un grosso problema, ma devo prendere le definizioni dall'intestazione e l'implementazione dal file m. Tipo di dolore –
Devi davvero tagliare e incollare per ogni vista. O quello, o crea un'altra classe per astrarre l'interazione con il controller dei risultati recuperati. L'ho provato una volta, però, e sarei stato molto meglio solo a gestire direttamente il controller dei risultati recuperato. – kubi
Come dice kubi, l'astrazione di alcuni dettagli qui può o potrebbe non essere efficiente, a seconda del numero di entità diverse che è necessario visualizzare. Se è 2 o 3, copia e incolla. Se è 10, forse l'astrazione inizia a farti risparmiare tempo. O forse se questo codice verrà riutilizzato molto più tardi, ciò suggerisce anche di tenerlo pulito dall'inizio. Sii pragmatico qui e fai la chiamata in base al tuo dominio e alle tue esigenze, e non una stretta osservanza del principio DRY. –