__attribute__((deprecated))
це спосіб gcc (також підтримується у clang ) позначення функції / методу як застарілої. Коли його позначено як "застарілий", щоразу, коли хтось його зателефонує, буде видано попередження.
Синтаксис для нормальних функцій буде таким
__attribute__((deprecated))
void f(...) {
...
}
__attribute__((deprecated("g has been deprecated please use g2 instead")))
void g(...) {
...
}
і те, що у методів Objective-C, було б
@interface MyClass : NSObject { ... }
-(void)f:(id)x __attribute__((deprecated));
...
@end
Ви також можете позначити весь клас як застарілий
__attribute__((deprecated))
@interface DeprecatedClass : NSObject { ... }
...
@end
Apple також пропонує <AvailabilityMacros.h>
заголовок, який надає макроси DEPRECATED_ATTRIBUTE та DEPRECATED_MSG_ATTRIBUTE (msg), які розширюються до вищезазначених атрибутів, або нічого, якщо компілятор не підтримує атрибути. Зверніть увагу, що цей заголовок не існує поза OS X / iOS.
Примітка: якщо ви використовуєте Swift, ви використовуєте @available
атрибут для припинення збереження товару, наприклад
@available(*, deprecated=2.0, message="no longer needed")
func f() {
...
}