This one stumped me for awhile:
BWNagType.h:23: `BWConcreteType' defined as wrong kind of tagIn this particular case, I had a type I had declared with:
@class BWConcreteType;and later on I had decided to turn it into an enum:
typedef enum BWConcreteType { ... } BWConcreteType;
without removing the previous@classdeclaration. So be on the look out for conflicting types for the same symbol.