SpriteKit-AppDelegate的使用 - 未声明的标识符

时间:2013-03-24 15:11:08

标签: iphone objective-c xcode cocos2d-iphone appdelegate

我正在用cocos2d编写游戏(来自Pablo Ruiz的书)。 现在我必须创建暂停屏幕,根据这本书,我必须在AppDelegate.m(和.h文件)中创建新功能:

+(AppDelegate *) get {

return (AppDelegate *) [[UIApplication sharedApplication] delegate];
}

我收到错误:预计会有类型;预期表达;在消息发送表达式的开头缺少'[';使用未声明的标识符'AppDelegate'。

在另一个名为GameScene.m的文件中,我创建了这些函数:

-(void)resume
{
if(![AppDelegate get].paused)
{
    return;
}
[AppDelegate get].paused = NO;
[self onEnter];
}

-(void)onExit
{
if(![AppDelegate get].paused)
{
    [AppDelegate get].paused = YES;
    [super onExit];
}
}

-(void)onEnter
{
if(![AppDelegate get].paused)
{
    [super onEnter];
}
}

我得到另一组错误:使用未声明的标识符'AppDelegate',四次。

有人可以解释我如何摆脱这些错误吗?

2 个答案:

答案 0 :(得分:1)

确保已将以下内容添加到GameScene.h中:

@class AppDelegate;

这将让编译器知道类AppDelegate存在。 在你的GameScene.m中:

#import "AppDelegate.h"

这使您可以访问AppDelegate成员和方法。

答案 1 :(得分:1)

Cocos2d 2.0?然后使用AppController。

#import "AppDelegate.h"

AppController *app = (AppController*)[UIApplication sharedApplication].delegate;