おしゃれな新しいNS_ENUM を使用して、objective-c iOS プロジェクトで列挙型を定義しようとしています。
クラスのヘッダーで次のように NS_ENUM を宣言しています。
NS_ENUM(int, SomeEnumType){
SomeEnumType1,
SomeEnumType2,
SomeEnumType3,
SomeEnumType4
};
@interface Issue : NSObject
....
そして、コンパイラの警告が表示されます:
ISO C は「enum」型への前方参照を禁止しています
今、列挙型を(少し)古い伝統的な方法で定義すると、次のようになります。
typedef enum{
SomeEnumType1,
SomeEnumType2,
SomeEnumType3,
SomeEnumType4
}SomeEnumType;
@interface Issue : NSObject
....
コードのまったく同じ場所で、問題は解消されます。NS_ENUM で何が間違っていますか?
編集:
typedef を追加して修正しましたが、それでも警告が表示されます。
私はペダンティックなコンパイラ警告をオンにしました。これはあまりにも衒学的なケースですか、それとも間違っている正しい方法がありますか?