【问题标题】:How does the the Objective-C import process work?Objective-C 导入过程是如何工作的?
【发布时间】:2014-01-07 04:44:00
【问题描述】:

所以我有一个名为 HUDLayer.h 和 HUDLayer.m 的类,在 .m 中,我正在运行以下内容:

#import "HUDLayer.h"
#import "Gamescene.h"
#import "GameplayLayer.h"
#import "Bear.h"
[GameScene sharedGamePlayLayer].bear.stamina;

我的问题是.. 为什么我需要导入 GameplayLayer.h 和 Bear.h? (如果我不这样做,我会导致前向类声明错误)

我的 GameScene.h 已经导入了这 2 个。因此,我认为我不必再次导入它。除非我对导入的工作方式有错误的想法。

编辑:意识到我的错误。我一直在我的头文件中使用@class,但我想如果我在引用@class 的同一个头文件之外有引用,我必须用导入替换那个@class。 (对不起大家,还在学习objective-c的东西)

【问题讨论】:

    标签: objective-c xcode cocos2d-iphone


    【解决方案1】:

    您无需再次导入这些文件,只要将 GameplayLayer.hBear.h 导入到 Gamescene.h(即类的公共接口文件)中 - 而不是在私有 Gamescene.m 中导入,因为您可能现在就做。

    【讨论】:

    • 是的,但更喜欢在实现中使用@class 和导入而不是标题。这可以防止循环导入,并且还应该加快编译速度。
    • 真的吗?我查看的其他一些帖子只是建议我只在标题中使用@class,因为我们不会访问标题中的那些对象。
    猜你喜欢
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多