0

クラス 'Enemy' に実装しようとしている攻撃メソッドがあり、クラス 'Paragon' のサブクラスを呼び出します。

サブクラスは @interface を介して .h ファイルに作成され、.m に実装されます。

これは、敵クラスで述べられている私の現在の攻撃方法です。

-(void)chosenParagonForAttack:(Paragon*)paragon{
    _paragonLink = nil; //_paragonLink, is an object of class Paragon.
    _paragonLink = paragon;
    [self attackParagon];
    [paragon underAttackByEnemy :self];
}

私が得ている問題は、実際のパラゴンがサブクラスによって作成されているため、攻撃が発生していないことです。サブクラスは、異なる画像やデータなどを使用して、異なる「パラゴン」を定義します。

ベースクラス (Paragon) を指定するだけでサブクラスを呼び出す方法はありますか?

Paragon クラスのすべてのサブクラスを含む if ステートメントを作成することで、これを回避できますが、これを行うためのより良い方法があるかどうかを知りたいと思っています。

「isSubclassOfClass」または「isKindOfClass」で解決できると思っていましたが、うまく使えませんでした。

ありがとう。

4

1 に答える 1