У меня есть базовый класс, который имеет методы класса, определенные для возврата различных частей информации, которые я использую для создания URL-адреса службы. Базовый класс также имеет метод экземпляра, определенный для создания этого URL-адреса. Я хотел бы, чтобы базовый класс имел реализацию этого метода по умолчанию, поэтому мне нужно только переопределить его в моих подклассах, когда мне нужно, чтобы URL-адрес был другим. Как этот базовый метод вызывает переопределенные методы класса для создания URL-адреса с использованием методов класса из подкласса? Ниже приведен код, который я теперь не работает:Вызов методов, переопределенных в подклассе из суперкласса
Метод базового класса:
- (NSString *)buildRequestUrlString{
return [Utils serviceEndpointForOperationId:[[self class]operationId] version:[[self class] operationVersion] andRequestMethod:[[self class] methodType];
}
OperationID, operationVersion и methodType являются методы класса, которые реализуются в подклассе, но когда подкласс делает следующий вызов:
[super buildRequestUrlString];
Он использует методы класса из базового класса, чтобы построить свою конечную точку, а не методы класса в моем подклассе. Как я могу сделать это не так? Возможно ли это?
Спасибо заранее,
Ник
Это именно то, что я сделал, за исключением того, что они не являются методами экземпляра, они являются методами класса. Это будет работать, если они являются методами экземпляра, но я не мог использовать методы экземпляра, потому что я использую эти методы для других вещей в других местах, и методы экземпляра не будут работать в этих случаях. –
Вернувшись и посмотрев на это, я понял, что забыл переопределить три метода класса. Именно поэтому он не выполнял базовую реализацию этих трех методов класса. Спасибо за всю твою помощь. –