1

ため、私は私のヘッダーでこのエラーの私をコンパイルすることはできません。Classクラスは宣言されています/それを宣言する方法はどこですか?

error: expected identifier [1]

-(void) removeAllEntitiesOfClass:(Class)class;

キャレットが小文字クラスを指して。

この機能を削除すると、再びコンパイルされます。

MyクラスはClassを使用するパブリックメソッドを持つNSObjectのサブクラスなので、これは自動的に宣言されると思いました。

クラスをクラスに変更しようとしましたが、@Classクラスで宣言していますが、これは機能しません。タイプを変更しているため、再定義されています。どうやら、クラスはtypedefされたstructポインタです。私はここでそれを宣言する方法がわからないので、ポインタtypedefを宣言するのは厄介なことであると思います。私が間違っている場合は私を修正し、どのファイルをインポートするか、どのように転送するかを教えてください。

@interface GameState : NSObject { 
... 
} 
... 
-(void) removeAllEntitiesOfClass:(Class)class; 
@end            
+0

奇妙です。それはうまくいくはずです。 #imported Foundationをヘッダファイルに入れましたか? – Costique

+0

それは私の最後にうまくコンパイル...あなたはおそらく誤ったアーキテクチャやターゲットを設定している可能性があります? –

+0

@Costique:はい、私はを無駄にしようとしました。 –

答えて

2

私はあなたのヘッダーがObjective-C++翻訳で見えると思っています。 C++ではclassがキーワードです。これを修正するには、パラメータ名をclassからキーワード以外のものに変更します。

+1

ああ、はい、意味があります。メソッド名 'class'がどのようにエラーを引き起こさないか(newと同じ)、しかしパラメータ名はどうなるか興味深い。 –