How to declare an enum value as being deprecated in ObjectiveC (2.0)
I think you're attaching the __attribute__
bit to the wrong side of the assignment operator. This seems to work fine:
typedef enum{ GeometricPoint, GeometricLine, GeometricRectangle, GeometricSquare __attribute__((deprecated)) = GeometricRectangle, GeometricCircle}GeometricFigures;
and now assigning GeometricSquare
gives a compiler warning:
int fig = GeometricSquare; //'GeometricSquare' is deprecated
At a later point a convenience macro was added:
typedef NS_ENUM(NSInteger, GeometricFigures){ GeometricPoint, GeometricLine, GeometricRectangle, GeometricSquare __deprecated_enum_msg("Squares are for squares. Use GeometricRectangle.") = GeometricRectangle, GeometricCircle,};