“期望说明符 - 限定符列表”错误发生了什么

时间:2010-04-11 07:41:04

标签: objective-c debugging iphone-sdk-3.0

这是我的GameEngine.h:

#import <Foundation/Foundation.h>
#import "GameArray.h";


@interface GameEngine : NSObject {
    GameArray *gameButtonsArray;
}

@property (nonatomic, retain) GameArray *gameButtonsArray;

这是我的GameArray.h:

#import <Foundation/Foundation.h>
#import "MyAppDelegate.h";

@interface GameArray : NSObject {
    NSMutableArray *gameButtonsArray;

}
@property (nonatomic, retain) NSMutableArray *gameButtonsArray;

它在我的GameEngine.h中保持提示我的“期望说明符 - 限定符 - 列表”错误,并且错误说“在'GameArray'之前预期的说明符 - 限定符 - 列表”,发生了什么?

3 个答案:

答案 0 :(得分:4)

这是最好的做法。

GameEngine.h

#import <Foundation/Foundation.h>

@class GameArray;

@interface GameEngine : NSObject {
    GameArray *gameButtonsArray;
}

@property (nonatomic, retain) GameArray *gameButtonsArray;

然后在GameEngine.m

#import "GameEngine.h"
#import "GameArray.h"

@implementation GameEngine    
//...
@end

这可以防止循环引用,其中一个标题导入第二个标题,第二个标题导入第二个标题,导入第二个标题,依此类推。

答案 1 :(得分:2)

.h文件

中的第2行丢失分号

答案 2 :(得分:0)

如果删除不必要的分号不能解决您的问题,很可能 MyAppDelegate.h 导入 GameEngine.h GameEngine.h <之间创建循环依赖关系< / em>和 GameArray.h 。尝试从 GameEngine.h 中删除#import "GameArray.h"并将其替换为:

@class GameArray;

同时添加

#import "GameArray.h"

GameEngine.m 下面导入 GameEngine.h