2012-04-28 3 views
1

私はクラスAとクラスBを持っていると言うことができます。クラスAでは、私はsaveImageと呼ばれるメソッドを実装し、メソッドを.mで実装していると言います。キャストによる別のクラスのメソッドを呼び出しますか?

私は[(ClassA *)self saveImage]をすれば簡単だと言ってもいいですか?そのクラスAのメソッドは呼び出されますか?

これの背後にある論理は誰か誰もが説明することができるので、私は少し良く理解できますか?

ありがとうございます!

答えて

2

キャストは、ほとんどの場合、コンパイル時の型チェック用です(安全のため、メッセージはidのオブジェクトに送信すると常にキャストするのが賢明です。)hereを参照してください。コンパイラは、実際にはのインスタンスがClass Aまたはサブクラス(約束どおり)のインスタンスでない限り、コンパイルしようとすると、あなたが約束を破るとランタイムは怒ってしまうでしょう:)

+1

ありがとうございました! –