2011-09-16 9 views
6

Nelle applicazioni iOS che supportano Core Data, il codice generato per il delegato dell'app contiene la funzione saveContext, con commenti che consigliano di sostituire abort() con il codice per il ripristino dall'errore.Ripristino da un errore di dati principali in saveContext

Esiste un codice standard standard (ovvero non specifico dell'applicazione) che potrebbe effettivamente essere ripristinato da questo tipo di errore?

Stavo pensando di cancellare tutti i dati da Core Data. Questo sarebbe d'aiuto? Coprirebbe contro ogni tipo di errore?

Infine, come si verifica questo codice di ripristino?

risposta

2

Non esiste un codice di errore, ma in genere le linee guida suggeriscono all'utente di presentare un messaggio di errore (molto probabilmente con UIAlertView). Solitamente il salvataggio del contesto fallisce quando ci sono oggetti non validi (con attributi non facoltativi non impostati) e un oggetto che ha due versioni (questo accade quando l'oggetto viene creato in un contesto e "aggiornato" in un altro). Il primo caso chiede di mostrare gli errori di convalida e offre all'utente la possibilità di correggerli nella stessa schermata in cui è stato eseguito il salvataggio. Il secondo caso ha tecniche di fusione in background discusse nel libro di cucina CoreData (che impiega o rilasciare una delle versioni dell'oggetto o unire le modifiche).

Anche dalla mia esperienza, direi che il salvataggio del contesto in AppDelegate non è necessario molto. Suggerisco di creare un contesto separato per la creazione dell'oggetto e lasciare il delegato dell'app solo per passare il MOC iniziale a rootViewController della finestra.

Problemi correlati