告诉方法是否覆盖另一种方法的简单方法?

时间:2013-09-01 19:56:14

标签: objective-c

我刚刚开始使用ObjC。我想知道如何查看代码,由我编写或从使用向导创建新类时出现的模板,如何判断方法是否覆盖某些内容。

在Java中,您可以使用@Override标记方法,然后很容易看出它是否覆盖了某些内容。这不是万无一失的,因为@Override是可选的,但是如果我仍然不确定我可以输入它并查看它是否会产生错误。

是查找超类源的唯一方法,还是在框架的情况下读取文档?

2 个答案:

答案 0 :(得分:1)

我不知道如何立即看到这一点,但您可以检查super是否响应 到同一个选择器。例如:

- (void)myMethod
{
    // Temporarily add this line. If the compiler does NOT complain,
    // "myMethod" overrides a method from some superclass.
    [super myMethod];
    // ...
}

答案 1 :(得分:0)

您可以使用instancesRespondToSelector来查看您的实例是否在其对象层次结构中具有该方法的实现。

[MyClass instancesRespondToSelector:@selector(myMethod)];

或取决于您需要执行的检查类型

[MyClassSuperClass instancesRespondToSelector:@selector(myMethod)];