2012-03-14 26 views
5

मैं वर्तमान में एक NSProxy उपवर्ग जो कुछ संदेशों को बीच में रोक पर काम कर रहा हूँ नहीं मिला और किसी को भी करने के लिए उन्हें कभी नहीं अग्रेषित करता है, लेकिन सिर्फ उन्हें संसाधित करता है, तो इन तरीकों वास्तव में मौजूद नहीं है। और यहां समस्या आती है, जाहिर है कि कंपाइलर लापता विधि कार्यान्वयन के बारे में शिकायत करना शुरू कर देता है और मैं यह नहीं समझ सकता कि इसे कैसे रोकें, इंटरफ़ेस में स्टब विधियों को जोड़ने के लिए बस कंपाइलर को बंद करने के लिए काम नहीं करता है क्योंकि विधियां मनमाने ढंग से गठित हैं और मैं उन्हें आगे नहीं जानता (इसे थोड़ा और विशिष्ट बनाने के लिए, मैं this प्रोजेक्ट के लिए पूछ रहा हूं)।अक्षम उदाहरण विधि चेतावनी

आदर्श रूप में मैं संकलक है कि यह किसी भी तरीके से सब पर इस विशिष्ट वर्ग के लिए जाँच नहीं करना चाहिए बताना चाहूँगा, लेकिन यह नहीं बल्कि संभावना नहीं लगता है के रूप में मैं भी एक #pragma या किसी अन्य तरीके के लिए खुशी होगी (जो नहीं करता है ' टी वे सिर्फ एक मनमाना लंबाई हो सकता था कि हर पूरी परियोजना/फ़ाइल में चेतावनी के लिए संकलक चुप रहो करने के लिए शामिल!)

उत्तर

1

आपका स्विच बयान वास्तव में मनमाने ढंग से नहीं कर रहे हैं। बड़ी संख्या में लंबाई के लिए, आप आगे बढ़ सकते हैं और उन्हें कंपाइलर के लाभ के लिए घोषित कर सकते हैं (और फिर आपको त्रुटि जांच मिल जाएगी, जो आप नहीं करेंगे अगर आपने चेतावनी बंद कर दी है)। उदाहरण के लिए: के रूप में कई स्तरों के लिए

typedef void (^ObjCCaseBlock)(); 

@interface NSObject() 
- (id)switch; 
- (void)case:(NSString*)a :(ObjCCaseBlock)b; 
- (void)case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b; 
- (void)case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b; 
@end 

दोहराएँ के रूप में (और आप के स्तर को जोड़ सकता है अगर यह कभी एक समस्या से टकरा) होने की संभावना है। यह थोड़ा कठिन है, लेकिन मुश्किल नहीं है।

+0

यह 'default' जो अंत में होना करने के लिए मजबूर नहीं कर रहा है ... – JustSid

+0

या अच्छी तरह से, यह काम करता है के साथ काम नहीं करता है, लेकिन यह लगभग कुछ ही समय में बड़े और गंदा हो जाता है। – JustSid

+0

थोड़ी देर के लिए googling के बाद, यह एकमात्र विकल्प प्रतीत होता है (हालांकि '# pragma' के लिए एक रडार दायर किया) ... मैं समाधान के साथ वास्तव में खुश नहीं हूँ, लेकिन मुझे लगता है कि यह चाल करने के लिए है अभी व। – JustSid

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