मान लें कि मेरे पास एक दृश्य नियंत्रक है, या एक विंडो नियंत्रक है, जो एक समान XIB फ़ाइल में "फ़ाइल के मालिक" (सामान्य रूप से) है।कार्यान्वयन (.m) फ़ाइलों में आईबीओलेटलेट आवृत्ति चर
यह (जैसा कि आप सभी जानते हैं) नियंत्रक वर्ग में IBOutlet
एस के लिए बहुत आम है जिसे आप इंटरफ़ेस बिल्डर का उपयोग कर XIB में कनेक्ट कर सकते हैं।
अब तक, मैं अपने इंटरफ़ेस (.h) फ़ाइलों में IBOutlet
इंस्टेंस चर बना रहा हूं। लेकिन (जैसा कि आप सभी जानते हैं) IBOutlet
एस अक्सर नियंत्रक वर्ग का एक निजी तंत्र होते हैं; बाहरी लोगों को उनके बारे में भी नहीं पता होना चाहिए।
यही कारण है कि अब मैं उद्देश्य-सी ने हाल ही में ऐसा करने की क्षमता की पेशकश करना शुरू कर दिया है- मेरे सभी IBOutlet
एस को मेरे कार्यान्वयन (.m) फ़ाइलों में रखना चाहता हूं।
मैंने ऐसा करने की कोशिश की, और ऐसा लगता है कि यह ठीक काम करता है। मेरे प्रश्न ये हैं: यह क्यों काम करता है? मैं इस धारणा के तहत था कि इंटरफेस बिल्डर केवल 'हेडर फाइलों को देख सकता था-उनकी कार्यान्वयन फाइलों में नज़र डालें। क्या मै गलत हु? इंटरफ़ेस बिल्डर कैसे कार्यान्वयन फ़ाइलों को "देख" सकता है? कार्यान्वयन फ़ाइलों में IBOutlet
इंस्टेंस चर डालने के लिए संभावित रूप से खतरनाक हो सकता है?
ध्यान दें कि मैक पर आधुनिक रनटाइम का उपयोग करते समय यह केवल तभी संभव है, जिसका मतलब केवल 64-बिट है। क्लासिक रनटाइम को हेडर में सभी ivars घोषित करने की आवश्यकता होती है। –