通过调用类名VS自我类方法(Calling class methods via class name

2019-07-29 04:28发布

假设我们有一个名为类Calculator 。 有一个在这一个类的方法,叫做runProgram 。 如果我想调用这个类的方法,类的实现里面,你会在这两者之间的区别是:

[Calculator runProgram]

要么

[self runProgram]

难道这些都一样吗?

Answer 1:

如果实例方法中:

[self runProgram]

在此, self表示对象实例本身,因此它会产生运行时错误。 你想用

[[self class] runProgram]

代替。

但是,如果从另一个类的方法调用此方法,然后

[self runProgram]

是正确的,因为现在self是指类本身。 我会劝阻使用

[Calculator runProgram]

因为那么类的子类会错误调用超( Calculator的)方法,而不是一个可能重写的方法。



文章来源: Calling class methods via class name vs self