__attribute__((deprecated))
gcc way (supported in clang) को फ़ंक्शन/विधि को बहिष्कृत करने के लिए चिह्नित करने के लिए) है। जब किसी को "बहिष्कृत" के रूप में चिह्नित किया जाता है, तो जब भी कोई इसे कॉल करता है तो एक चेतावनी उत्पन्न की जाएगी।
सामान्य कार्यों के लिए वाक्यविन्यास होगा
__attribute__((deprecated))
void f(...) {
...
}
// gcc 4.5+/clang
__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
साथ पदावनत
ऐप्पल भी <AvailabilityMacros.h>
शीर्षलेख प्रदान करता है जो DEPRECATED_ATTRIBUTE और DEPRECATED_MSG_ATTRIBUTE (msg) मैक्रोज़ प्रदान करता है जो उपर्युक्त विशेषताओं में विस्तारित करते हैं, या कुछ भी नहीं यदि संकलक विशेषता का समर्थन नहीं करता है। ध्यान दें कि यह हेडर ओएस एक्स/आईओएस के बाहर मौजूद नहीं है।
साइड ध्यान दें, यदि आप स्विफ्ट का उपयोग कर रहे आप @available
attribute का उपयोग करता है, उदा एक आइटम का बहिष्कार करना
@available(*, deprecated=2.0, message="no longer needed")
func f() {
...
}
इस तेजी से उत्तर के लिए धन्यवाद, मैं बहुत यकीन है कि यह मदद मिलेगी हूँ मैं :) – Julien
पूछ मैं सिर्फ दूसरा प्रश्न है, इससे पहले कि थोड़ी देर के लिए खोज:
दस्तावेज़ देखें यह संदेश जोड़ना संभव है जैसे "विधि का उपयोग करें XXX" की तरह? – Julien
@ जुलिएन: हां: '__attribute ((बहिष्कृत (इसके बजाय विधि का उपयोग XXX)) '। लेकिन यह वाक्यविन्यास केवल जीसीसी 4 से शुरू होता है।5, और एक्सकोड के साथ भेजे गए संस्करण 4.2 है ... – kennytm