Расширение базовых данных сгенерированных классов 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 здесь ссылка, которая точно объясняет, как это сделать.