Suppose we have a class named Calculator
. There's a class method in it, called runProgram
.
If I wanted to call this class method, inside the class's implementation, what would the difference between these two be:
[Calculator runProgram]
OR
[self runProgram]
Are these both the same?
If inside an instance method:
in this,
self
means the object instance itself, and thus it will generate a runtime error. You want to useinstead.
However, if you call this method from another class method, then
is correct, since now
self
refers to the class itself. I'd discourage to usebecause then subclasses of the class would erroneously call the superclass' (
Calculator
's) method instead of a possibly overridden method.