Ampliación de las clases NSManagedObject generadas por Core Data

He estado trabajando con Core Data por primera vez y quería saber cuáles son las mejores prácticas para extender las clases que genera Xcode para mis entidades NSManagedObject.

Vi mogenerador y también he estado usando un enfoque similar al sugerido en SÚPER FELIZ RECOGIDA FÁCIL EN DATOS BÁSICOS. Así que tuve tres tipos de clases:

  • La categoría EasyFetching (solo una clase);
  • Una subclase NSManagedObject generada (es decir: _Entity);
  • Una subclase personalizada con algunos métodos personalizados como encontrar todos los objetos inactivos, borrar el caché de un objeto, etc. (es decir: Entidad).

Este enfoque me permitió hacer un código personalizado mientras podía refactorizar mi entidad Core Data y generarla tantas veces como lo necesitara. Pero también me encontré con algunos problemas, como no poder declarar métodos de nivel de objeto para mis entidades (porque NSManagedObjectContext solo conocía mis clases _Entity).

Ahora estoy usando categorías para extender las funcionalidades de mis entidades. Y esto funciona mucho mejor porque puedo tener métodos de nivel de objeto personalizados. Ahora tengo tres tipos de clases:

  • La categoría EasyFetching (ya que tiene muchos métodos que usa todo mi código personalizado);
  • Una subclase NSManagedObject generada (es decir, Entidad);
  • Una categoría personalizada para mi entidad NSManagedObject (es decir: Entidad+Personalizado.h).

Mi pregunta es: cual me recomendarias?

Gracias de antemano por sus respuestas

preguntado el 03 de mayo de 12 a las 08:05

Eso es básicamente lo que he estado haciendo también: categorías personalizadas para mis entidades Core Data con algunos métodos adicionales y demás. En cuanto a la categoría EasyFetching, en realidad estoy usando algo basado en esto: github.com/halostatue/coredata-easyfetch - lo que también ayuda a simplificar las cosas :) -

Parece que es el estado actual de las cosas, confirmado aquí: sunetos.com/items/2011/07/24/… -

@piobyz es genial ver todas las alternativas explicadas para que la gente entienda la compensación. Lo único que la misión IMO se refiere a esto aquí porque también requiere mucho trabajo cuando estás haciendo código relacionado con Core Data. -

1 Respuestas

Ahora que ha publicado su pregunta como respuesta en mi pregunta, pensé que debería responder a tu pregunta :)

Mogenerator no se ve mal, pruébalo.

Además, la forma en que sugirió con categorías también es una buena opción.

De hecho aquí hay un aquí eso explica exactamente cómo hacerlo.

contestado el 23 de mayo de 17 a las 12:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.