长话短说,在我开始使用 C++ sdk (openfeint) 之前,我的项目(一个 iPhone 应用程序)一切正常。一切工作正常,包括 C++ Openfeint 的东西,直到我从设备上的测试切换到模拟器中的测试。
现在它不会编译任何东西,我得到了不到 200 个错误。这一切都失去了控制,无法在任何设备上编译。正如我所说,一切都运行良好,我没有更改任何一行代码,我只是切换了 Active SDK。
所以我将从头开始。第一个错误是...
Error 1: ISO C++ forbids of declaration 'BrickControlLayer' with no type
单击此错误会将我带到另一个类的头文件...
// GameScene.h
#import <Foundation/Foundation.h>
#import "cocos2d.h"
#import "brickSprite.h"
#import "BrickControlLayer.h"
#import "GameState.h"
#import "ScoreController.h"
#import "FeedbackLayer.h"
#import "TimeBar.h"
@interface GameScene : Layer {
GameState *gameState;
ScoreController *scoreController;
CocosNode *spriteHolder;
brickSprite *targetBrick;
// Heres the line it takes me too <<<<<<<<<<<<<<<<<
BrickControlLayer *controls;
NSInteger difficulty;
NSMutableArray *pointsLookupArray;
BitmapFontAtlas *scoreLabel;
FeedbackLayer *feedback;
NSDate *startTime;
TimeBar *timeProgress;
int rowScanCount, foundRows;
}
// methods here....
@end
我是新手,所以请耐心等待。我很困惑,因为我清楚地说明那*controls
是' BrickControlLayer
'类型。所以我认为“BrickControlLayer”本身有问题。
这是标题...
// BrickControlLayer.h
#import <Foundation/Foundation.h>
#import "cocos2d.h"
#import "brickSprite.h"
#import "HighScores.h"
@interface BrickControlLayer : Layer{
CocosNode *spriteHolder;
CGPoint touchedStartPoint, moveFromPoint;
brickSprite *touchedBrick;
BOOL editorMode;
int movecount;
// Control buttons
AtlasSpriteManager *buttonManager;
AtlasSprite *rotLeft, *rotRight, *newBrick, *deleteBrick, *makeTarget, *save, *run;
BOOL tapToContinue;
}
@property (retain, readwrite) CocosNode *spriteHolder;
@property (retain, readwrite) brickSprite *touchedBrick;
-(void)showEditorControls;
-(void)selectBrickAtLocation:(CGPoint)location;
-(void)hideEditorControls;
-(void)deactivate;
@end
我已经克服了它。以前一切正常,我根本想不通。我一直在谷歌上搜索它,唯一出现的是“前向声明”一词,但这对我来说没有任何意义,我发现的所有信息都在谈论结构。
我怀疑这些错误更多地表明我做错了很多其他事情,而不是犯了一个简单的单行错字之类的东西。谁能用通俗的语言解释这里发生了什么?