に(派生クラス)IVARのクラスを変更する私は2つの基本クラス、Container
とGizmo
を有していると仮定する。クラスContainer
のインスタンス変数は、Gizmo
です。サブクラス
は今、私はContainer
をサブクラス(そのSubContainer
を呼び出す)私もGizmo
(SubGizmo
)をサブクラス化。 SubContainer
のいくつかの方法では、Gizmo
にはSubGizmo
がないいくつかのプロパティにメッセージを送信する必要があります。私はこれらのメッセージを送信できるので、SubContainer
にクラスSubGizmo
であるようにivarを上書きする方法はありますか?
今私はそれがSubGizmo
に私は、そのようなプロパティやメソッドを使用する必要があるたびに、私の継承IVARをキャストして動作させることができます。私はそのような行動をしたい理由はここに
は次のとおりです。私はすでに動作しているゲームがありますが、私は追加複数のモードは、難しくは維持するために取得します。各モードで実行されるメソッドを変更/追加したい場合私は3つの異なるゲームコントローラオブジェクトに行き、変更を行う必要があります。サブクラス化することで
は、私は、基本クラスで、メインゲームの仕組みを維持し、各モードのサブクラスを作りたかったのです。このようにして、基本クラスの変更は各モードを反映します。しかし、各コントローラとゲームオブジェクトは異なるモードのための新しいメソッドを持ち、互いにメッセージを送ります。これは私の問題が発生している場所です。
プログラムは、私はあなたが私のクラス名を承認するように見えるうれしい – justin
少ないあいまいになります。文字といくつかの星の数は、追跡するのが難しかった。 :) –
@JacquesCousteauははるかに明確です:) – justin