2012-05-10 20 views
7

Estoy usando CoreData y me preguntaba si de alguna manera podría extender mis NSManagedObjects para hacer cosas personalizadas (como eliminar archivos que pertenecen a esta instancia).Extendiendo el método de eliminación de NSManagedObject

En mi caso tengo un par de entidades CoreData y cada entidad puede tener una carpeta o ruta de archivo almacenada en una propiedad. Si la entidad se elimina, quiero que esta entidad se encargue de eliminar los archivos a los que se hace referencia por sí misma.

Tal comportamiento sería particularmente útil en combinación con la regla de eliminación "Cascade", ya que la eliminación de una entidad elimina todas las entidades secundarias y sus archivos.

Si no existe tal mecanismo, escribiría una Categoría para cada entidad que contenga un método de eliminación personalizado, incluido el comportamiento en cascada para entidades que puedan tener hijos.

¿Qué harías, hay una solución elegante a mi problema? ¿Ha sido discutido antes y no lo he encontrado?

¡Muchas gracias!

Paul

Respuesta

18

Usted puede hacer la limpieza adicional justo antes de que se elimina un objeto reemplazando el método prepareForDeletion en su NSManagedObject subclase.

+1

Perfecto, parece que estaba buscando con las palabras clave incorrectas. Lo intentaré más tarde hoy. – Paul

Cuestiones relacionadas