cocos2dフレームワークを使用してiPhoneゲームに取り組んでいますが、最近、解決できないと思われる問題が発生しました。プロジェクトに新しいクラスを追加し、その中でいくつかの作業を行った後、コードをコンパイルしようとしましたが、触れたことのないクラスのいくつかが壊れました。それらのクラスは、外部クラスをインポートする方法を忘れているようです。いくつかのクラスでエラーが発生していますが、その一例を次に示します。
#import "cocos2d.h"
#import "XZombie.h"
#import "WayPoint.h"
#import "XBuilding.h"
//@class XBuilding;
@interface Hoarde : CCNode
{
float _spawnRate;
int _totalXombies;
NSMutableArray *_path;
XBuilding *_target;
NSMutableArray *_zombies;
bool _zombiesReset;
}
@property (nonatomic) float spawnRate;
@property (nonatomic) int totalXombies;
@property (nonatomic, retain) NSMutableArray *path;
@property (nonatomic, retain) XBuilding *target;
@property (nonatomic, retain) NSMutableArray *zombies;
@property (nonatomic, assign) bool zombiesReset;
- (id) initWithZombieCount:(int)totalXombies Target:(XBuilding *) target SpawnRate:(float)spawnrate;
- (void) resetZombies;
@end
XBuilding *_target;
コメントを外すとエラー@class XBuilding;
が消えるので、問題は実際には解決されませんが、それを回避するためのツールが提供されます。
問題が発生しているすべてのファイルに対してトリックを実行すれば@class
、それを回避できます。問題は、specifier-qualifier-listのエラー以外に、新しい(ただし同様の)エラーが発生することです。コードのいくつかの行は私にExpected a ')' before *token
またはを与えますExpected a ';' before *token
。これらの行は通常、前のエラーも発生させたので、@ classトリックも同様に機能しましたが、なぜこのようなものが実行していることを実行しているのか、私には少しもわかりません。私はどこか(cocos2dフォーラムだと思います)で、.mファイルの名前を.mmに変更することでうまくいくかもしれないと読んだのですが、私にとってはそうではありませんでした。
ですから、私は自分のプロジェクトに取り組み続けることができますが、将来そのようなことを避けるために地球上でどのようにすべきかを本当に知りたいです...