从不同的类调用静态方法(cocos2d iPhone)

时间:2011-08-19 23:47:34

标签: iphone class methods cocos2d-iphone call

我的类中有一个名为Enemy的名为addEnemy的方法,我想在另一个名为EnemyLayer的类中调用此方法。我会使用[Enemy addEnemy];,但它不是静态方法(-(void)addEnemy)。我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

在Enemy下对EnemyLayer进行细分? 尝试更具体地解决您的问题。

答案 1 :(得分:0)

您必须先将Enemy.h文件导入EnemyLayer文件。然后,在Enemy文件中创建EnemyLayer类的实例。然后,您可以在该实例上调用addEnemy方法:

[instanceOfEnemyClass addEnemy];

(在您的示例中,您尝试在整个Enemy类上调用该方法,但它不是类方法,因此您必须在该类的实例上调用它。)

答案 2 :(得分:0)

您需要显示更多代码。你的问题很混乱。

我想你想知道如何制作一个类似这样的类方法:

+ (void) fooMethod
{
  // Do stuff
}

不会在类的实例上调用此方法,而是在类本身上调用此方法。因此:

// Instance declaration
// The class is named FooClass and the instance of the class is _fooInstance
FooClass *_fooInstance;

// This will not work as it is calling for a 
// instance method which does not exist.
[_fooInstance fooMethod];

// This will work as it is calling for a class
// method which does exist.
[FooClass fooMethod];