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