Расширение базовых данных сгенерированных классов NSManagedObject

Я впервые имел дело с Core Data и хотел узнать, каковы лучшие методы расширения классов, которые Xcode генерирует для моих сущностей NSManagedObject.

Я видел mogenerator, и я также использовал подход, аналогичный тому, который был предложен в SUPER HAPPY EASY FETCHING IN CORE DATA. Итак, у меня было три вида занятий:

  • Категория EasyFetching (только один класс);
  • Сгенерированный подкласс NSManagedObject (то есть: _Entity);
  • Пользовательский подкласс с некоторыми пользовательскими методами, такими как поиск всех неактивных объектов, очистка кеша для объекта и т. Д. (Т. Е. Entity).

Этот подход позволил мне создать собственный код, в то время как я мог бы реорганизовать свою сущность Core Data и генерировать ее столько раз, сколько мне нужно. Но я также столкнулся с некоторыми проблемами, такими как невозможность объявить методы уровня объекта для моих сущностей (потому что NSManagedObjectContext знал только мои классы _Entity).

Теперь я использую категории для расширения функциональности моих сущностей. И это работает намного лучше, потому что у меня могут быть собственные методы уровня объекта. У меня сейчас есть три вида классов:

  • Категория EasyFetching (поскольку в ней много методов, которые использует весь мой пользовательский код);
  • Сгенерированный подкласс NSManagedObject (т. Е. Entity);
  • Пользовательская категория для моего объекта NSManagedObject (т. Е. Entity+Custom.h).

Мой вопрос: что бы вы порекомендовали?

Заранее спасибо за ваши ответы

1 ответ

Теперь, когда вы разместили свой вопрос в качестве ответа на мой вопрос, я подумал, что должен ответить на ваш вопрос:)

Mogenerator не выглядит плохо, попробуйте.

Кроме того, способ, который вы предложили с категориями, также является хорошим вариантом.

Infact здесь ссылка, которая точно объясняет, как это сделать.

Другие вопросы по тегам