2012-04-26 12 views
0

私はcocos2dフレームワークを使用してiPhoneゲームで作業していますが、最近解決できない問題が発生しました。私のプロジェクトに新しいクラスを追加し、その中でいくつかの作業をした後、私は自分のコードをコンパイルしようとしました。そして、私が触れなかったクラスのいくつかが壊れました。これらのクラスは、外部クラスのインポート方法を忘れてしまったようです。私は私のクラスのいくつかにそこまでエラーを取得しますが、ここでは一例にしています:iPhone cocos2d "予想される修飾子リストの前に..."以上

#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 

私は@class XBuilding;のコメントを解除した場合XBuilding *_target;
を読み込みライン上のエラーを取得し、エラーが表示されなくなりますので、それは本当に私の問題を解決するものではありませんが、それは私にそれを回避するためのツールを提供します。私は私が問題を抱えていたすべてのファイルに対して@classトリックを行う場合


、私はそれを回避することができます。というのも、指定子修飾子リスト以外にも、同様のエラーが発生します。いくつかのコード行は私にExpected a ')' before *tokenまたはExpected a ';' before *tokenを与えます。これらの行は通常私にも以前のエラーを与えていましたので、@classトリックも同様に働いていましたが、なぜこのことが何をしているのかは少しも分かりません。私は.mファイルの名前を.mmに変更すると、そのトリックを行うかもしれないが、それは私のためではなかった(cocos2dのフォーラムだと思う)。

だから、私は私のプロジェクトの作業を続けることができますが、私は本当に将来的にはそのようなものを避ける方法を地球上知りたいのですが...

答えて

1

には、例えば、循環依存があるかどうかを確認してください、 ClassB.hClassA.hにインポートし、逆も同様です。これは、 "Expected specifier-qualifier-list before ..."エラーが発生する典型的なシナリオです。

私は除きのみ@classあなたのヘッダファイル内を使用することをお勧め:あなたのクラスは

ヘッダファイルは#import編でなければなりません実装のプロトコルをINGのスーパークラスに

  • #importをINGの

  • +0

    私は一種の '@のclass'esと'#のimport'sと一緒にすべてをハッキング、その周りに自分の道を働きました。私はこれに返信するのを忘れていましたが、助けました。 – Argent

    関連する問題