在不同的类中调用方法

时间:2011-01-16 01:57:51

标签: class methods cocos2d-iphone move

此问题与asked here

半问题类似

但不同之处在于我正在使用cocos2d。 我的AppDelegate中有一个名为screenshot的方法。它显然用于截取屏幕截图。我想在另一个类中调用这个方法,但只是做[self screenshot];没有成功,因为我得到警告'GameOver'我没有回应'-screenshot'。

我想要的只是在GameOver中调用截图方法。

谢谢!

1 个答案:

答案 0 :(得分:0)

您无法调用不存在的方法 - 它将生成运行时错误。

如果你想从GameOver调用AppDelegate的方法,你应该有一个指向AppDelegate对象的指针,如果该方法不是静态的:

[appDelegatePointer screenshot];

如果方法是静态的

[AppDelegate screenshot];

我想你只有一个对象AppDelegate,你可以创建一个静态方法

+(AppDelegate) sharedDelegate;
AppDelegate类的

将返回你的对象单例。因此,您可以从GameOver对象或其他任何地方调用screenshot方法:

[[AppDelegate sharedDelegate] screenshot];

这样的事情在CCDirector,CCTextureCache,SimpleAudioEngine,...... Cocos2D中的类中完成