У меня есть 3 объекта с одним родителем двух других. Я создал подклассы NSManagedObject для каждого из них. Я знаю, как наследовать атрибуты родительского класса, но мне нужно наследовать метод. Прямо сейчас у меня только 1 контроллер представления, поэтому я действительно не знаю, как я могу наследовать метод только с одним VC, или я могу? Все 3 объекта будут иметь метод с тем же именем. Спасибо за любую возможную помощь.Наследование метода для основных объектов данных (один из родительских)
ответ
Просто объявить метод в родительском классе, и переопределить его в дочерних классах:
@interface BaseClass : NSManagedObject
- (void)doSomething;
@end
@interface InheritedClass : BaseClass
- (void)doSomething;
@end
@implementation InheritedClass
- (void)doSomething {
[super doSomething];
....
}
@end
Спасибо! Таким образом, «не прикасайтесь к классам, созданным для ваших сущностей». Я читаю везде, когда вам нужно выполнить эту задачу? – jpgr
Причина, по которой они говорят, «не трогайте классы», состоит в том, что эти файлы могут быть сгенерированы автоматически (если хотите) редактором Data Model Editor Xcode. Например, вы можете просто удалить файлы .h и .m NamedanObject и восстановить их. Если вы внесли какие-либо изменения в файлы .h или .m, эти изменения, очевидно, будут потеряны при восстановлении файлов. Если вы действительно хотите пройти этот маршрут, просто избегайте регенерации файлов для этого конкретного класса и управляйте им вручную. Надеюсь, это имеет смысл. – melsam
Да, эта часть, которую я знал. В книгах, учебниках и т. Д. Не следует строго «не прикасаться», а вместо этого говорить «автогенерировать», вы можете редактировать и добавлять методы, но если вы снова решите автогенерировать, ваши изменения не будут сохранены. " – jpgr
Я извиняюсь, но, пожалуйста, переписать ваш вопрос. Я не могу сказать, что именно вы спрашиваете. –