__attribute__((deprecated))
एक पद / विधि को पदावनत करने के लिए gcc तरीका ( क्लैंग में समर्थित ) भी है । जब किसी को "पदावनत" के रूप में चिह्नित किया जाता है, तो जब भी कोई भी इसे बुलाएगा, एक चेतावनी का उत्पादन किया जाएगा।
सामान्य कार्यों के लिए वाक्यविन्यास होगा
__attribute__((deprecated))
void f(...) {
...
}
__attribute__((deprecated("g has been deprecated please use g2 instead")))
void g(...) {
...
}
और उद्देश्य-सी के तरीके होंगे
@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 के बाहर मौजूद नहीं है।
साइड नोट, यदि आप स्विफ्ट का उपयोग कर रहे हैं तो आप आइटम का उपयोग करने के लिए @available
विशेषता का उपयोग करते हैं , उदाहरण के लिए
@available(*, deprecated=2.0, message="no longer needed")
func f() {
...
}