1

我刚开始使用 ObjC。我想知道如何在查看由我编写的代码或使用向导创建新类时提供的模板时找出方法,如何判断方法是否覆盖了某些东西。

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

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

4

2 回答 2

1

我不知道有什么方法可以立即看到,但您可以检查是否super响应同一个选择器。例子:

- (void)myMethod
{
    // Temporarily add this line. If the compiler does NOT complain,
    // "myMethod" overrides a method from some superclass.
    [super myMethod];
    // ...
}
于 2013-09-01T20:04:32.570 回答
0

You can use instancesRespondToSelector to see if your instance has an implementation of the method in its object hierarchy.

[MyClass instancesRespondToSelector:@selector(myMethod)];

or depending on what type of checking you need to do

[MyClassSuperClass instancesRespondToSelector:@selector(myMethod)];
于 2013-09-01T21:01:18.933 回答