Я расширяю функциональность класса с помощью подкласса и делаю некоторые грязные вещи, которые делают методы суперкласса опасными (приложение будет зависать в цикле) в контексте подкласса. Я знаю, что это не гениальная идея, но я пойду за низко висящими плодами, прямо сейчас это сэкономит мне время. О, это грязная работа, но кто-то должен это сделать.
Суть в том, что мне нужно либо заблокировать этот метод извне, либо выдать исключение, когда он вызывается непосредственно в суперклассе. (Но я все еще использую его из подкласса, разве что с осторожностью).
Как лучше всего это сделать?
ОБНОВИТЬ ---
Так это то, что я пошел для. Я не отвечаю сам себе, так как в ответе Боаза упоминается несколько действительных способов сделать это, это именно то, что мне подходит. В подклассе я переопределяю метод следующим образом:
- (int)dangerousMethod
{
[NSException raise:@"Danger!" format:@"Do not call send this method directly to this subclass"];
return nil;
}
Я помечаю это как отвеченное, но, очевидно, это не означает, что оно закрыто, дальнейшие предложения приветствуются.