दिलचस्प पोस्ट
XDocument का उपयोग करके <? Xml संस्करण = "1.0"?> कैसे मुद्रित किया जाए फ़ायरफ़ॉक्स में एसवीजी पर मूल परिवर्तन Grails 2.3.0 ऑटो-रीलोडिंग काम नहीं कर रहा है मैं माइक्रोसॉफ्ट के मानक WPF विषयों को कहाँ से डाउनलोड कर सकता हूं? printf स्ट्रिंग, चर लंबाई आइटम एक सर्लेट में आने वाले मल्टीपार्ट / फॉर्म-डेटा पैरामीटर को पार्स करने का आसान तरीका स्प्रिंग परीक्षण में स्कोप सेम का अनुरोध करें .NET अनुप्रयोग के लिए उपयोगकर्ता सेटिंग्स को स्टोर करने का सबसे अच्छा तरीका क्या है? यूनिक्स खोल स्क्रिप्ट में हेक्साडेसिमल में दशमलव को कनवर्ट करें क्या एआरएम्स पर डेटा दोहराव को प्रति-पर-प्रतिलिपि रोकेंगे? पृष्ठ पुनः लोड किए बिना फ़ॉर्म जमा करें पायथन में दो चर समान आईडी हैं, लेकिन सूचियों या ट्यूपल्स नहीं हैं कार्यों के अंदर "वैश्विक" संदर्भ का उपयोग करने के लिए बुरा व्यवहार क्यों माना जाता है? जोडा-टाइम: अवधि, अंतराल और अवधि के बीच अंतर क्या है? यूआरएल चर में स्लैश

उद्देश्य-सी: फॉरवर्ड क्लास डिक्लेरेशन

मैं एक मल्टीविज़ ऐप लिख रहा हूं जो दृश्यों के बीच स्विच करने के लिए RootViewController नामक एक कक्षा का उपयोग करता है।

मेरे MyAppDelegate हेडर में, मैं RootViewController नामक rootViewController का एक उदाहरण बना देता rootViewController । मैंने ऐसे उदाहरण देखे हैं जहां @ वर्ग डायरेक्टिव को "फॉरवर्ड क्लास घोषणापत्र" के रूप में प्रयोग किया जाता है, लेकिन मुझे पूरा यकीन नहीं है कि इसका क्या मतलब है या पूरा करता है।

 #import <UIKit/UIKit.h> @class RootViewController; @interface MyAppDelegate . . . 

Solutions Collecting From Web of "उद्देश्य-सी: फॉरवर्ड क्लास डिक्लेरेशन"

यह मूल रूप से कंपाइलर को बताता है कि कक्षा RootViewController मौजूद है, यह निर्दिष्ट किए बिना कि यह वास्तव में कैसा दिखता है (यानी: इसकी विधि, गुण, आदि)। आप इसका उपयोग उस कोड को लिखने के लिए कर सकते हैं जिसमें पूर्ण वर्ग घोषणा शामिल किए बिना RootViewController सदस्य चर शामिल हैं।

यह परिपत्र निर्भरता को हल करने में विशेष रूप से उपयोगी है – उदाहरण के लिए, जहां ClassB* का एक सदस्य है, और ClassB में ClassB ClassB* सदस्य है। आपको ClassB से पहले उपयोग करने से पहले ClassB घोषणा करनी होगी, लेकिन आपको ClassB में इसका उपयोग करने से पहले ClassB की भी आवश्यकता होगी। आगे की घोषणाओं से आप ClassB को यह कहकर इस पर काबू पाने की अनुमति दे सकते हैं कि ClassB's पूर्ण विनिर्देश को वास्तव में निर्दिष्ट किए बिना ClassB मौजूद है।

एक और कारण है कि आपको बहुत आगे की घोषणाएं मिलती हैं कुछ लोग अग्रेषित होने वाले कक्षाओं के एक सम्मेलन को अपनाते हैं, जब तक कि उन्हें पूर्ण घोषणा शामिल न हो। मुझे पूरी तरह से याद नहीं है, लेकिन संभवतः ऐसा कुछ ऐसा है जो एप्पल इसके उद्देश्य-सी मार्गदर्शक शैली दिशानिर्देशों की सिफारिश करता है।

मेरे उपरोक्त उदाहरण को जारी रखते हुए, यदि आपकी ClassA.h और ClassB.h क्रमशः ClassA.h और ClassB.h फाइलों में है, तो आप को किसी भी वर्ग में अपनी घोषणा का उपयोग करने के लिए #import करने की आवश्यकता होगी। आगे की घोषणा का अर्थ है कि आपको #import आवश्यकता नहीं है, जो कोड को सुंदर बना देता है (विशेषकर एक बार जब आप काफी कुछ कक्षाएं इकट्ठा करते हैं, जिनमें से प्रत्येक को `# इंपोर्ट जहां उपयोग किया जाता है) की आवश्यकता होती है, और कम से कम प्रदर्शन को संकलित करता है किसी भी फाइल को संकलित करते समय संकलक को संहिता की आवश्यकता होती है

एक तरफ, हालांकि सवाल केवल उद्देश्य-सी में अग्रेषण घोषणाओं से संबंधित है, सभी कार्यवाही टिप्पणियां सी और सी ++ (और संभवत: कई अन्य भाषाओं) में कोडिंग के लिए समान रूप से लागू होती हैं, जो आगे की घोषणा का भी समर्थन करती हैं और आमतौर पर इसके लिए उपयोग करती हैं वही उद्देश्य