Я бы хотел переопределить метод в классе Objective C, для которого у меня нет источника.
Я изучил это, и кажется, что Категории должны позволять мне это делать, но я хотел бы использовать результат старого метода в моем новом методе, используя super для получения результата старых методов.
Всякий раз, когда я пытаюсь это сделать, мой метод вызывается, но "super" - это ноль ... Есть идеи, почему? Я занимаюсь разработкой iPhone с XCode 2.2 SDK. Я определенно работаю с экземпляром класса, а метод класса является методом экземпляра.
@implementation SampleClass (filePathResolver)
-(NSString*) fullPathFromRelativePath:(NSString*) relPath
{
NSString *result = [super fullPathFromRelativePath: relPath];
... do some stuff with the old result
return result;
}
Примечание и уточнение: Из того, что я вижу в Apple Docs, мне кажется, что это должно быть разрешено?
Категории документов на developer.apple.com:
Когда категория переопределяет унаследованный метод, метод в
категория может, как обычно, вызывать
унаследованная реализация через сообщение
супер. Тем не менее, если категория
переопределяет метод, который уже
существовал в классе категории, там
нет способа вызвать оригинал
осуществление.