防止子类方法被触发?

时间:2011-03-04 15:43:02

标签: objective-c cocoa cocoa-touch

我确信此问题之前已经被问过,但是我搜索过并找不到它,所以我提前道歉在此处复制内容。

话虽如此:在Objective-C中,在重写方法中,您可以使用[super methodName]之类的方法调用父类方法 但是如何防止其余代码在父类中执行?可能是因为它是星期五,但我盯着我的显示器几分钟而且无法超越它。

示例(在子类中):

- (void)methodName
{
    [super methodName];

    //Everything below this line shouldn't execute if tell it not to from the parent
    NSString *aString = @"This should never be called.";
}

帮帮我吧!我知道这是一个简单的解决方案,但我的大脑今天并没有把它拿起来......

2 个答案:

答案 0 :(得分:1)

您可能有另一个函数返回True / False,您可以使用它来决定是否要继续处理孩子中的剩余代码。这个'control'函数可以依赖于父类

中设置的变量

话虽如此,这听起来对我来说是一个有趣的要求。也许你需要再看看你的班级设计和等级。

答案 1 :(得分:0)

您可以测试对象类型并确定您是否要运行其他代码,例如:

if (![myObject isKindOfClass:[MyChildObject class]]
{
    //run only superclass code
}

在我写这篇文章时,我不禁想知道你是否对如何设置课程没有任何问题。如果你的设计是现场的,你不应该经历这些扭曲。