假设我们有一个名为类Calculator
。 有一个在这一个类的方法,叫做runProgram
。 如果我想调用这个类的方法,类的实现里面,你会在这两者之间的区别是:
[Calculator runProgram]
要么
[self runProgram]
难道这些都一样吗?
假设我们有一个名为类Calculator
。 有一个在这一个类的方法,叫做runProgram
。 如果我想调用这个类的方法,类的实现里面,你会在这两者之间的区别是:
[Calculator runProgram]
要么
[self runProgram]
难道这些都一样吗?
如果实例方法中:
[self runProgram]
在此, self
表示对象实例本身,因此它会产生运行时错误。 你想用
[[self class] runProgram]
代替。
但是,如果从另一个类的方法调用此方法,然后
[self runProgram]
是正确的,因为现在self
是指类本身。 我会劝阻使用
[Calculator runProgram]
因为那么类的子类会错误调用超( Calculator
的)方法,而不是一个可能重写的方法。