2011-09-16 15 views
6

En las aplicaciones iOS que admiten Core Data, el código generado para el delegado de la aplicación contiene la función saveContext, con comentarios que recomiendan reemplazar abort() con el código para recuperar el error.Recuperación de un error de Datos centrales en saveContext

¿Hay algún código repetitivo estándar (es decir, no específico de la aplicación) que pueda realmente recuperarse de este tipo de error?

Estaba pensando en borrar todos los datos de Core Data. ¿Eso ayudaría? ¿Cubriría contra cualquier tipo de error?

Por último, ¿cómo puedo probar este código de recuperación?

Respuesta

2

No hay un código repetitivo per se, pero generalmente las pautas sugieren que el usuario presente un mensaje de error (probablemente con UIAlertView). Por lo general, el ahorro de contexto falla cuando hay objetos no válidos (con atributos no configurables no opcionales), así como un objeto que tiene dos versiones (esto sucede cuando el objeto se crea en un contexto y se "actualiza" en otro). El primer caso suplica mostrar los errores de validación y dar al usuario la oportunidad de corregirlos en la misma pantalla donde se realizó el guardado. El último caso tiene técnicas de fusión de fondo discutidas en el libro de cocina CoreData (que emplea la eliminación de una de las versiones del objeto o la fusión de cambios).

También desde mi experiencia, diría que el ahorro de contexto en AppDelegate no es muy necesario. Sugiero crear un contexto separado para la creación de objetos y dejar el delegado de la aplicación solo para pasar el MOC inicial al rootViewController de su ventana.

Cuestiones relacionadas