짧은 이야기를 요약하면 C++ SDK (openfeint)를 사용하기 전까지 프로젝트 (iPhone 앱)가 정상적으로 작동하고있었습니다. 시뮬레이터에서 테스트 할 때까지 디바이스에서 tesitng로 전환 할 때까지 C+++ Openfeint를 포함하여 모든 것이 잘 작동했습니다.Openfeint가이 문제를 일으켰습니다. 형식이없는 'myClass'선언의 ISO C++ 금지.
이제는 아무 것도 컴파일되지 않고 단지 200 개 미만의 오류 만 발생합니다. 모든 것이 통제에서 벗어나 모든 장치에서 컴파일되지 않습니다. 내가 말했듯이 모든 것이 완벽하게 작동하고 한 줄의 코드를 변경하지 않고 단순히 Active SDK를 전환했습니다.
그래서 처음부터 시작하겠습니다. 첫 번째 오류는
// 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
내가 그렇게 나와 함께 곰이 새로운 해요 ...
Error 1: ISO C++ forbids of declaration 'BrickControlLayer' with no type
이 오류를 클릭하면 다른 클래스의 헤더 파일에 저를 걸립니다 ...입니다. *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
... 헤더입니다. 이전에 괜찮 았던 모든 작업이 있었고 간단하게 파악할 수 없었습니다. 나는 인터넷 검색을 해왔고 작물 업은 "Forward Declaration"이라는 용어이다. 그러나 그것은 나에게 아무런 의미가 없으며 구조체에 관한 이야기를 찾았다.
나는 실수가 단순한 한 줄 오타 나 뭔가를 범하는 것이 아니라 다른 많은 일을 잘못하고 있음을 알 수 있다고 생각한다. 누구든지 여기서 laymans 용어로 설명 할 수 있습니까?
이 코드는 목표 C 것으로 보인다 - 그것은 확실히 C 아니다 ++. –
객관적인 C이지만 openfeint는 C++이므로 파일 확장명을 .mm으로 변경해야했습니다. – gargantuan
장치를 컴파일하기 위해 다시 변경하면 작동합니까? 귀하의 빌드 설정에 대한 뭔가가 BrickControlLayer 또는 brickSprite를 포함시키지 않는지 궁금합니다. OpenFeint를 추가하기 바로 전에 시뮬레이터를 올바르게 컴파일 했습니까? –