2014-01-07 12 views
0

所以我有一个叫HUDLayer.h和HUDLayer.m和里面的.m,我跑类以下内容:Objective-C导入过程如何工作?

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

我的问题是...为什么我需要进口GameplayLayer.h和熊。H? (如果我不这样做,我会导致前面的类声明错误)

我的GameScene.h已经导入了那些2.因此,我想我不必再导入它。除非我对如何导入工作有错误的想法。

编辑:实现了我的错误。我一直在我的头文件中使用@class,但我猜想在引用@class的同一头文件之外的引用的情况下,我必须用导入替换该@class。 (对不起球员,还在学习Objective-C的东西)

回答

2

你并不需要再次导入这些文件,只要GameplayLayer.hBear.hGamescene.h(一类,即公共接口文件)均采用进口 - 而不是在私人Gamescene.m,因为你现在可能会这样做。

+1

是的,但更喜欢在实现中使用@class和import,而不是头部。这可以防止循环导入,并且还应该加快编译速度。 – LearnCocos2D

+0

真的吗?我查看的其他一些帖子只是建议我只在标头中使用@class,因为我们不打算访问标头中的这些对象。 – dtc