У меня есть категория Objective-C, которую я хотел бы добавить к нескольким классам, не дублируя код, содержащийся в категории. Я просто хочу добавить одни и те же методы к нескольким классам.
У меня есть существующие категории на NSManagedObject
подклассах (Book
, Chapter
, Page
), и я хотел бы добавить общие функциональные возможности для этих подклассов простым и понятным способом.
Один из способов - добавить категорию к их общему суперклассу (NSManagedObject
), но это приведет к добавлению методов категории ко всем подклассам NSManagedObject
, когда я хочу добавить методы к трем подклассам NSManagedObject (Book
, Chapter
, Page
).
Другим решением было бы создать подкласс NSManagedObject
, а затем Book
, Chapter
и Page
наследовать от этого NSManagedObject
подкласса. Это самый чистый, самый прямой подход. Большим недостатком этого подхода является то, что когда модель данных изменяется и Xcode регенерирует подклассы, он сбрасывает их обратно к наследованию от NSManagedObject
вместо SubclassedManagedObject
. Я хотел бы по возможности избегать использования чего-то вроде mogenerator / Xmo'd.
Можно ли добавить одну категорию в несколько классов без дублирования кода?
Спасибо.