【问题标题】:Subclass variables not inherited when building on iPhone在 iPhone 上构建时未继承的子类变量
【发布时间】:2011-10-26 23:34:00
【问题描述】:

我是 Objective-c 的新手,如果我遗漏了一些非常明显的东西,非常抱歉。我目前正在编写一个包含许多迷你游戏的游戏。我已经建立了一个

超级游戏控制器

UIViewController 的子类,然后将我所有的游戏作为它的子类。 SuperGame Controller在接口中定义了多个变量,如下所示,

@interface SuperGameController : UIViewController {
    MainViewContoller *mainView;

    bool GAME_PLAYING;
    bool PAUSED;
    bool WIN;

    ball *theBall;
    UIImage *mainBall;
    UIImageView *ballView;
}

因此,(有人告诉我)我不需要在每个游戏的头文件中定义这些变量。我已经构建了一些这样的迷你游戏,它们可以在 iPhone 4.3 模拟器上运行,但是当我尝试在我的 iPhone 上运行该项目时,它告诉我这些变量中的每一个都是

undeclared (first use in this function)

我需要做些什么来确保项目在 iPhone 上运行,还是我只是在这里遗漏了一些明显的东西?我玩了很多,没有找到任何有用的东西。您能提供的任何帮助都会很棒!

谢谢!!

【问题讨论】:

  • 您是否在使用任何没有显式变量的@synthesize 属性?
  • 另外,您是否收到任何其他错误/警告?
  • 我在超类中有一个@synthesize 属性,它也在每个子类中声明,但尚未在任何地方分配。我需要明确使用它吗?
  • 不,这是我得到的唯一错误...

标签: ios inheritance subclass


【解决方案1】:

似乎有一个 XCode 错误 - 它可以很好地为模拟器编译它,但不能为设备编译。

使用 self->[name] 作为解决方法(例如 self->theBall、self->GAME_PLAYING 等)

编辑:澄清一下,假设您不使用属性而是直接使用 ivars。如果您使用 theBall、GAME_PLAYING 等创建属性,请使用 self.[property](即点,而不是 ->)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多