我可以在父类中断一个孩子的方法吗?

时间:2014-07-03 02:16:58

标签: objective-c

我宣布ParentClass

然后ChildClass: ParentClass

在“在ParentClass中执行某些操作”后,是否可以在ChildClass中中断重写的方法,以便“不能在ChildClass中执行某些操作”?

// ParentClass.m

- (void)method
{
    /*do something in ParentClass*/
    /*try interrupting [child method]*/
}

// ChildClass.m

- (void)method
{
    [super method];
    /*do something in ChildClass*/
}

2 个答案:

答案 0 :(得分:2)

没有。你不能。父类对子类一无所知。如果你遇到这种需要,你需要重新考虑你的结构......

答案 1 :(得分:0)

不,你不能像这样控制调用链上的方法。一个类也不应该有关于它的子类的这种知识。

您必须找到ClassB检查条件本身的方法,无论是通过-[ClassA method]的返回值,还是先调用其他方法,或直接检查它。