我有一个基类,它具有用于返回构建服务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];
它使用从基类的类的方法来建立我的终点,而不是类的方法在我的子类。我如何让它不这样做?它甚至有可能吗?
由于提前,
尼克
这正是我所做的,除非它们不是实例方法,它们是类方法。如果它们是实例方法,这将会起作用,但我不能使用实例方法,因为我在其他地方使用这些方法来处理其他事情,实例方法在这些情况下不起作用。 –
回过头看这个之后,我意识到我忘记了重写三个类的方法。这就是为什么它默认这三种方法的基础实施。感谢您所有的帮助。 –