【问题标题】:SpriteKit -use of AppDelegate - undeclared identifierSpriteKit - 使用 AppDelegate - 未声明的标识符
【发布时间】:2013-03-24 15:11:08
【问题描述】:

我正在用 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”,四次。

谁能解释我如何摆脱这些错误?

【问题讨论】:

  • 你的 #import 你的 AppDelegate 在你的 GameScene 文件中正确吗?
  • 提示:如果您从书中学习,请务必使用与书中描述/使用的软件完全相同的版本。如果您解决了这个问题,将会有几十个类似的问题等着您。

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


【解决方案1】:

Cocos2d 2.0?然后使用 AppController。

#import "AppDelegate.h"

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

【讨论】:

  • 谢谢。我明天试试,如果有帮助我会告诉你的。但是关于缺少类型的问题呢?
  • 没什么帮助。无论我做什么,我仍然会收到同样的错误。谁能给我解决方案,因为我不知道
  • 你能告诉我如何在我上面发布的程序中使用 AppController 吗?
  • 就像我的回答一样。如果需要,还可以放置 paused 属性。没有像 [AppDelegate get] 这样的默认属性。我猜想...如果需要,您需要在 appDelegate 中写一个。
  • 但是在哪里使用这个“应用程序”呢?我创建了“暂停”属性,但仍然出现这些错误
【解决方案2】:

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

@class AppDelegate;

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

#import "AppDelegate.h"

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

【讨论】:

  • 谢谢,它解决了一些问题,但还有更多。首先,我遇到了错误:Receiver 'AppDelegate' 是一个转发类,对应的@interface 可能不存在;在转发类对象“AppDelegate”中找不到属性“暂停”。这两个错误每​​个重复 5 次)。还有一个错误,关于 AppDelegate.m - Expected a type。
  • 这听起来好像您正试图在不 #import AppDelegate 的 .m 文件中访问 AppDelegate 的成员。尝试在头文件中添加#import。这不是一个好的风格,你应该尽量避免它。熟悉前向声明的概念。见此链接:stackoverflow.com/a/5191507/921573
  • 你好。我在每个地方都进口了所有东西,但仍然没有。我仍然收到我在开始时提到的错误。怎么办?
  • 好吧,我现在开始猜了……也许你忘记在构建阶段添加一些库或框架? (从导航器中选择您的项目文件,选择您的目标,选择构建阶段,检查目标依赖项/将二进制文件与库链接)
  • 我检查了一切。我也尝试将每个 AppDelegate 重命名为 AppController,但它也不起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多