How do I flag a method as deprecated in Objective-C 2.0? How do I flag a method as deprecated in Objective-C 2.0? objective-c objective-c

How do I flag a method as deprecated in Objective-C 2.0?


Deprecation Syntax

Syntax is provided to mark methods as deprecated:

@interface SomeClass-method __attribute__((deprecated));@end

or:

#include <AvailabilityMacros.h>@interface SomeClass-method DEPRECATED_ATTRIBUTE;  // or some other deployment-target-specific macro@end


IMHO, it's easier to write __deprecated:

- (void)myDeprecatedMethod __deprecated;- (int)methodNameDeprecated:(int)param __deprecated;

Works too on classes

__deprecated@interface MyDeprecatedClass  // ... some properties and methods ...@end


If you want to give additional message with the deprecation flag, you can use following flags.

@property (strong, nonatomic) NSString *catName                    __deprecated_msg("use name instead.");//  -- Or -- @property (strong, nonatomic) NSString *catName                    DEPRECATED_MSG_ATTRIBUTE("use name instead.");//  -- Or -- @property (strong, nonatomic) NSString *catName                    __attribute__((deprecated("use name instead.")));

Using above mentioned flags, you can tell why you are deprecating or what is the method developer should use in future.