Sto utilizzando un NSFetchedResultsController per gestire un UITableView e tutto funziona correttamente e l'ho trovato molto potente, specialmente in combinazione con il delegato dei risultati. Per eseguire il drill down della tabella sto riutilizzando la stessa classe controller, che viene istanziata con i parametri facendo clic su una riga di celle, il controller viene quindi inviato a UINavigationController e viene creata un'altra vista tabella, sempre con un NSFetchedResultsController.Uso corretto di NSFetchedResultsController cache
A questo punto, ogni controller ha una propria cache e il nome della cache è derivato con un identificatore univoco [NSString stringWithFormat "cacheName _% @", uniqueStringForCell], e alla fine posso ovviamente avere molti cache.
Ora le domande.
1) Avere molte cache può essere un problema?
2) Quando dovremmo usare una cache?
3) In caso di deleteCacheWithName, dove è il posto migliore per mettere tale metodo? Ho provato in viewWillDisappear, ma con questo suppongo di poter avere problemi quando la vista verrà visualizzata di nuovo e la cache non è più presente, ad esempio quando si utilizza con un UINavigationController. Probabilmente il metodo dealloc è il posto migliore?
4) Qual è la relazione tra una cache e la gestione della memoria? Voglio dire, quando viene inviato un (void)ReceiveMemoryWarning devo cancellare la cache? Se sì, che ne dici di ricostruirlo di nuovo? Qual è il modo preferito, forse riemettere il recupero?
5) il controller di recupero ha il suo delegato impostato su UITableViewController (fetchController.delegate = self), c'è qualche problema con questo? In un certo senso, in caso di modifica vengono avvisati più di un controller? E deleteCacheWithName rimuove anche il delegato?
grazie