__attribute__((deprecated))
ist die gcc-Methode (auch in clang unterstützt ), mit der eine Funktion / Methode als veraltet markiert wird. Wenn einer als "veraltet" markiert ist, wird eine Warnung ausgegeben, wenn jemand ihn anruft.
Die Syntax für normale Funktionen wäre
__attribute__((deprecated))
void f(...) {
...
}
__attribute__((deprecated("g has been deprecated please use g2 instead")))
void g(...) {
...
}
und das von Objective-C-Methoden wäre
@interface MyClass : NSObject { ... }
-(void)f:(id)x __attribute__((deprecated));
...
@end
Sie können auch die gesamte Klasse als veraltet markieren
__attribute__((deprecated))
@interface DeprecatedClass : NSObject { ... }
...
@end
Apple stellt auch den <AvailabilityMacros.h>
Header bereit, der die Makros DEPRECATED_ATTRIBUTE und DEPRECATED_MSG_ATTRIBUTE (msg) enthält, die auf die oben genannten Attribute erweitert werden, oder nichts, wenn der Compiler keine Attribute unterstützt. Beachten Sie, dass dieser Header außerhalb von OS X / iOS nicht vorhanden ist.
Randnotiz: Wenn Sie Swift verwenden, verwenden Sie das @available
Attribut, um einen Artikel zu verwerfen, z
@available(*, deprecated=2.0, message="no longer needed")
func f() {
...
}