__attribute__((deprecated))
es la forma gcc (también admitida en clang ) de marcar una función / método como obsoleto. Cuando uno está marcado como "obsoleto", se producirá una advertencia cada vez que alguien lo llame.
La sintaxis para funciones normales sería
__attribute__((deprecated))
void f(...) {
...
}
__attribute__((deprecated("g has been deprecated please use g2 instead")))
void g(...) {
...
}
y el de los métodos Objective-C sería
@interface MyClass : NSObject { ... }
-(void)f:(id)x __attribute__((deprecated));
...
@end
También puede marcar toda la clase como obsoleta con
__attribute__((deprecated))
@interface DeprecatedClass : NSObject { ... }
...
@end
Apple también proporciona el <AvailabilityMacros.h>
encabezado que proporciona las macros DEPRECATED_ATTRIBUTE y DEPRECATED_MSG_ATTRIBUTE (msg) que se expanden a los atributos anteriores, o nada si el compilador no admite atributos. Tenga en cuenta que este encabezado no existe fuera de OS X / iOS.
Nota al margen, si está usando Swift, usa el @available
atributo para desaprobar un artículo, por ejemplo
@available(*, deprecated=2.0, message="no longer needed")
func f() {
...
}