我有一个名为myClass的类。这个类定义了TouchesMoved和TouchesBegan。
此类由其他3个类使用。但我需要为每个类添加更多代码,添加到相同的TouchesMoved和TouchesBegan方法,而不会覆盖已经在其类中的代码。我的意思是,如果我将一个TouchesBegan方法添加到3个类之一,它将不会使用该方法的类定义。相反,我希望能够添加代码,而不是替换。
示例:
MyClass
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self doStuff1];
}
Object1 based on MyClass
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self doStuff2];
}
当object1的touchesBegan运行时,它将调用doStuff2和doStuff1,而不仅仅是doStuff2。
这可能吗?
感谢
答案 0 :(得分:2)
你不能在Object1的touchesBegan中调用[super touchesBegan:(NSSet *)触及withEvent:(UIEvent *)事件吗?
答案 1 :(得分:1)
我想说这取决于解决方案的设计。如果想法是你的基类处理那些事件,并且介于两者之间使得派生类有机会做自己的事情,那么你可以声明像onTouchesBegan这样的方法,从基类的touchesBegan实现中调用它,并在您需要的派生类。这比依赖派生类调用基类更不容易出错。基地也将控制事物的顺序。