我有一个试图在“Enemy”类中实现的攻击方法,它将调用“Paragon”类的子类。
子类通过.h 文件中的@interface 创建,并在.m 中实现。
这是我在 Enemy 类中描述的当前攻击方法:
-(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'会解决它,但我没有成功使用它们。
谢谢。