Sto lavorando a un'applicazione supportata da Core Data. In questo momento, sto salvando il contesto oggetto come e quando aggiungo o elimina un'entità da e verso il contesto. Ho paura che influirà sulle prestazioni, quindi stavo pensando di ritardare il salvataggio. In effetti, potrei posticiparlo fino al termine dell'applicazione. È troppo rischioso salvare i dati solo quando l'applicazione sta per chiudere? Con quale frequenza dovrei chiamare il salvataggio su Object Context?Quante volte dovrei salvare in Core Data?
Stavo pensando di avere un thread separato per gestire il salvataggio: attenderà un semaforo. Ogni volta che una parte dell'applicazione richiama un metodo helper/util per salvare i Core Data, diminuirà il semaforo. Quando è a zero, il "save thread" farà un salvataggio una volta e incrementa il semaforo a, diciamo, 5, e poi riaddormenta.
Qualche buona raccomandazione? Grazie!
Grazie per la risposta rapida. I miei oggetti non sono enormi, ma l'oggetto è un po 'complicato. Il negozio sottostante è SQLite, quindi come hai detto, dovrebbe andar bene. C'è un altro problema che ho riscontrato di recente: creo un oggetto entità nel contesto e lo salvi. In un breve momento, se elimini quell'entità (recuperata in seguito utilizzando un FetchedResultsController), otterrei un errore che ha qualcosa a che fare con la coerenza interna. Penso che sia perché il contesto non ha aggiornato il grafo degli oggetti in memoria? – Justin
Vorrei aggiungere a questo che vuoi rendere la tua frequenza di salvataggio effettiva una variabile o un '# define' in modo che, una volta che sei in fase di test, puoi mettere a punto la frequenza di salvataggio e guardare i risultati in Strumenti. –