У меня в классе два метода
- (void)configureWithDictionary:(NSDictionary*)dictionary;
- (void)configureWithDictionary:(NSDictionary*)dictionary withOptions:(XWTreeItemConvertationToNSDictionaryOption*)options;
И у меня есть реализация для них обоих. Так! Решение вроде: «Просто добавьте NSAssert (NO, @« Вы должны переопределить этот метод »)» не поможет = (
- (void)configureWithDictionary:(NSDictionary*)dictionary withOptions:(XWTreeItemConvertationToNSDictionaryOption*)options;
{
NSAssert(NO, @"You mast override this method"
}
Потому что у меня там есть код. И нужно написать [super configureWithDictionary:dictionary withOptions:options];
в перегруженном методе. Этим методом может пользоваться каждый. И мне нужно и то, и другое! Но.
Если какой-нибудь разработчик -[MYClass configureWithDictionary:]
перегрузит, он может "работать некорректно". Просто потому, что этот метод не вызывается в любое время. Поэтому мне нужно что-то написать в консоли. Типа: «Перегрузите метод: -[MYClass configureWithDictionary:withOptions:]
». И я хочу обработать это только один раз в этом методе:
+ (void)initialize
{
if (self == [self class]) {
}
}
Но я не могу найти никакого решения (в документации / google / stackoverflow). И не могу справиться: «Не перегружает ли разработчик метод базового класса».
Может быть есть какое-нибудь решение получше. Но я считаю, что он должен быть лучшим. Если у вас есть другие идеи. Напишите пожалуйста ниже =)
Я нашел только метод: +[NSObject instancesRespondToSelector]
и, конечно, я знаю о -[NSObject respondsToSelector:]
, но, как вы знаете, он всегда возвращает ДА. Мне нужно почти то же самое, но для текущего класса, игнорирующего базу.
PS. В любом случае спасибо за внимание. Ссылка на документацию или статью будет очень кстати.