という名前のクラスがあるとしCalculator
ます。と呼ばれるクラスメソッドがありrunProgram
ます。クラスの実装内でこのクラス メソッドを呼び出したい場合、これら 2 つの違いは次のようになります。
[Calculator runProgram]
また
[self runProgram]
これらはどちらも同じですか?
という名前のクラスがあるとしCalculator
ます。と呼ばれるクラスメソッドがありrunProgram
ます。クラスの実装内でこのクラス メソッドを呼び出したい場合、これら 2 つの違いは次のようになります。
[Calculator runProgram]
また
[self runProgram]
これらはどちらも同じですか?
インスタンスメソッド内の場合:
[self runProgram]
ここで、self
はオブジェクト インスタンス自体を意味するため、実行時エラーが発生します。使いたい
[[self class] runProgram]
代わりは。
ただし、このメソッドを別のクラス メソッドから呼び出すと、
[self runProgram]
self
クラス自体を参照するようになったため、正しいです。私は使用することをお勧めしません
[Calculator runProgram]
クラスのサブクラスが、Calculator
オーバーライドされた可能性のあるメソッドではなく、誤ってスーパークラスのメソッドを呼び出すためです。