IBOutlet
प्रदर्शन के कारण मजबूत होना चाहिए। आईओएस 9 में स्टोरीबोर्ड संदर्भ, मजबूत IBOutlet, दृश्य डॉक देखें
जैसा कि इस पैराग्राफ में बताया गया है, व्यू कंट्रोलर के व्यू के सब-वे के आउटलेट कमजोर हो सकते हैं, क्योंकि ये सब पहले से ही nib फाइल के टॉप लेवल ऑब्जेक्ट के स्वामित्व में हैं। हालाँकि, जब आउटलेट को एक कमजोर पॉइंटर के रूप में परिभाषित किया जाता है और पॉइंटर सेट किया जाता है, तो ARC रनटाइम फ़ंक्शन को कॉल करता है:
id objc_storeWeak(id *object, id value);
यह सूचक (ऑब्जेक्ट) को एक कुंजी के रूप में ऑब्जेक्ट मान का उपयोग करके तालिका में जोड़ता है। इस तालिका को कमजोर तालिका कहा जाता है। एआरसी आपके आवेदन के सभी कमजोर बिंदुओं को संग्रहीत करने के लिए इस तालिका का उपयोग करता है। अब, जब ऑब्जेक्ट वैल्यू को हटा दिया जाता है, तो ARC कमजोर तालिका पर पुनरावृत्ति करेगा और कमजोर संदर्भ को शून्य पर सेट करेगा। वैकल्पिक रूप से, एआरसी कॉल कर सकते हैं:
void objc_destroyWeak(id * object)
फिर, ऑब्जेक्ट अपंजीकृत है और objc_destroyWeak फिर से कॉल करता है:
objc_storeWeak(id *object, nil)
कमजोर संदर्भ से जुड़ी यह पुस्तक-पुस्तक एक मजबूत संदर्भ को जारी करने में 2-3 गुना अधिक समय ले सकती है। तो, एक कमजोर संदर्भ रनटाइम के लिए एक ओवरहेड का परिचय देता है जिसे आप केवल आउटलेट को मजबूत के रूप में परिभाषित करने से बचा सकते हैं।
Xcode 7 के रूप में, यह सुझाव देता है strong
यदि आप इंटरफ़ेस बिल्डर में WWDC 2015 के सत्र 407 में यूआई डिज़ाइनों को लागू करते हुए देखते हैं , तो यह सुझाव देता है (से प्रतिलिपि http://asciiwwdc.com/2015/session/407 )
और अंतिम विकल्प जो मैं इंगित करना चाहता हूं वह भंडारण प्रकार है, जो या तो मजबूत या कमजोर हो सकता है।
सामान्य तौर पर आपको अपने आउटलेट को मजबूत बनाना चाहिए, खासकर यदि आप किसी आउटलेट को उप-दृश्य से या किसी बाधा से जोड़ रहे हों जो कि दृश्य पदानुक्रम द्वारा हमेशा बनाए नहीं रखा जाएगा।
केवल एक बार जब आपको वास्तव में एक आउटलेट को कमजोर बनाने की आवश्यकता होती है, तो यदि आपके पास एक कस्टम दृश्य है जो दृश्य पदानुक्रम और सामान्य रूप से अनुशंसित नहीं है, तो कुछ का संदर्भ देता है।
इसलिए मैं मजबूत चुनने जा रहा हूं और मैं कनेक्ट पर क्लिक करूंगा जो मेरा आउटलेट उत्पन्न करेगा।
IBOutletCollection()
नहीं होना चाहिएweak
, अन्यथा यह वापस आ जाता हैnil
।