2011-09-13 17 views
25

क्या पूरे प्रोटोकॉल को हटाना संभव है? मैं जीसीसी कंपाइलर का उपयोग कर रहा हूं जिसे आईओएस एसडीके 5.0 बीटा 7.मैं एक संपूर्ण प्रोटोकॉल को कैसे हटा सकता हूं?

DEPRECATED_ATTRIBUTE काम नहीं लगता है।

उदाहरण के लिए, निम्नलिखित दो कथन संकलित नहीं होते हैं।

  • @protocol DEPRECATED_ATTRIBUTE MyProtocol
  • @protocol MyProtocol DEPRECATED_ATTRIBUTE

उत्तर

49

मैं अपने आप को इस प्रयास नहीं किया है, लेकिन मुझे लगता है कि निम्न सिंटैक्स काम करना चाहिए।

__attribute__ ((deprecated)) 
@protocol MyProtocol 
@end 

यह एक संपूर्ण इंटरफ़ेस के साथ-साथ एक विधि को बहिष्कृत करने के लिए वाक्यविन्यास समानांतर करता है।

__attribute__ ((deprecated)) 
@interface MyClass 
@end 

@interface MyClass2 
- (void) method __attribute__((deprecated)); 
@end 
+0

हू। पूरी तरह से इसके बारे में नहीं सोचा था। – Hyperbole

+11

मुझे एहसास है कि यह पुराना है, लेकिन हाल ही में क्लेंग संस्करणों के मुताबिक, आप केवल ''' __deprecated''' '' '__attribute__ ((बहिष्कृत)'' '' के लिए शॉर्टेंड के रूप में उपयोग कर सकते हैं। – mszaro

+3

'__deprecated' के पास क्लैंग संस्करणों से कोई लेना देना नहीं है। यह सिस्टम हेडर द्वारा /usr/include/sys/cdefs.h में प्रदान किया जाता है। आप '__deprecated_msg (" इसका उपयोग कर डेवलपर्स को एक नोट "भी उपयोग कर सकते हैं। ') और कंपाइलर संदेश को बहिष्करण नोटिस के साथ प्रिंट करता है। –

संबंधित मुद्दे