わかりましたので、クラス A とクラス B があるとしましょう。クラス A では、saveImage というメソッドを実装し、.m.
[(ClassA*)self saveImage]; を実行すると言うのは簡単ですか? クラス A のそのメソッドは呼び出されますか?
これの背後にあるロジックは何ですか?誰かがそれを説明して、もう少しよく理解できるようにできますか?
ありがとう!
わかりましたので、クラス A とクラス B があるとしましょう。クラス A では、saveImage というメソッドを実装し、.m.
[(ClassA*)self saveImage]; を実行すると言うのは簡単ですか? クラス A のそのメソッドは呼び出されますか?
これの背後にあるロジックは何ですか?誰かがそれを説明して、もう少しよく理解できるようにできますか?
ありがとう!
キャストはほとんどコンパイル時の型チェックのためだけです (安全のために、メッセージを type のオブジェクトに送信するときは常にキャストするのが賢明であることに注意してください。ここid
を参照してください。コンパイラ (したがってランタイム) によって無視されます)。キャストは単にはい、そのオブジェクトは実際にはクラス B ではなくクラス A であるというコンパイラへの約束です。したがって、それをコンパイルしようとすると、 (約束したように)実際にインスタンスまたはサブクラスでない限り、例外.別名、約束を破るとランタイムが狂います:)self
Class A