मुझे इस मुद्दे पर प्रलेखन अस्पष्ट होने के लिए मिलता है:यदि आपके पास आईबीओलेट है, लेकिन संपत्ति नहीं है, तो क्या यह बरकरार है या नहीं?
कहें कि आप आईओएस के साथ काम कर रहे हैं (मैक केस नहीं, मतभेदों का उल्लेख करने की कोई आवश्यकता नहीं है)। मान लें कि यह सख्ती से 4.0+ है (पुराने ओएस में अंतर का उल्लेख करने की आवश्यकता नहीं है)। मान लें कि हम एनआईबी को सख्ती से स्वचालित रूप से लोड कर रहे हैं।
कहें कि आपके पास UIViewController, BigView है। कहें एनआईबी फ़ाइल में एक दर्जन तथाकथित "शीर्ष-स्तरीय" आइटम हैं ... कस्टम नियंत्रण, छवियां, या कुछ भी हो सकता है।
कहें कि आप निश्चित रूप से स्पष्ट रूप से निर्माण करने जा रहे हैं और फिर ऐप के चलाने के दौरान बिगव्यू से कई बार छुटकारा पाएं। तो:
(1) आप IBOutlet किसी भी प्रकार का इसके लिए, बिल्कुल नहीं है:
निब में इन शीर्ष-स्तरीय वस्तुओं में से एक के लिए, वहाँ तीन संभावनाएं हैं।
(2) आपके पास एक कनेक्टेड आईबीओलेट है - लेकिन संपत्ति नहीं है।
(3) आपके पास एक जुड़ा हुआ आईबीओलेट संपत्ति है (भ्रम से बचने के लिए, हम एक बरकरार संपत्ति कहेंगे)।
तो बिग व्यू जारी होने पर आइटम के साथ क्या होता है?
(3) के मामले में यह स्पष्ट है कि आपको स्पष्ट रूप से रिलीज़ करना होगा। यदि आप नहीं करते हैं, तो दृश्य समाप्त होने के बाद यह चारों ओर लटका होगा। कोई बात नहीं।
(1) के मामले में मुझे लगता है (लेकिन किसी को भी वास्तव में इस बात की पुष्टि कर सकते हैं?) है कि आइटम जब BigView चला गया है जारी किया जाएगा।
की (2) मामले यह स्पष्ट नहीं है कि क्या होता है में .......
प्रसिद्ध संदर्भ लिंक को देखते हुए: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html यह बहुत संदिग्ध है:
"में आईओएस, nib-loading कोड setValue का उपयोग करता है: forKey: प्रत्येक आउटलेट को फिर से कनेक्ट करने के लिए विधि। यह विधि समान रूप से उचित एक्सेसर विधि की तलाश करती है और [इसलिए क्या होता है यदि कोई नहीं है ?? हमें बताएं ...] वापस आ जाता है अन्य माध्यमों पर जब यह विफल हो जाता है ... [अच्छा ग्रिफ!] "
और इस दस्तावेज़ को देखें: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html और करने के लिए "नोक वस्तु प्रतिधारण"
तो नीचे स्क्रॉल ...
"निब फ़ाइल में वस्तुओं 1 की गिनती को बनाए रखने के साथ बनाया जाता है और उसके बाद autoreleased" बढ़िया ..
लेकिन रुकिए! में कुछ शब्द पर पढ़ें ...
हालांकि, ... जो उपलब्ध सेटर विधि का उपयोग करता है या डिफ़ॉल्ट रूप से वस्तु को बरकरार रखे हुए है, तो कोई सेटर विधि उपलब्ध है
क्या वे के बारे में बात कर रहे हैं?
वे मतलब है कि अगर कोई सेटर उपलब्ध (इवर, लेकिन कोई संपत्ति), यह फिर कायम ("बनाए रखने" के अलावा अन्य वे सिर्फ पिछले खंड में उल्लेख) --- या है कि है, वे कर रहे हैं क्या बस खुद को दोहराएं, यानी "डिफ़ॉल्ट रूप से ऑब्जेक्ट को बरकरार रखता है" वही "बनाए रखना" है, वे तुरंत पहले ("1 की एक गिनती गिनती के साथ बनाए गए और फिर ऑटोरेलेज्ड" के साथ बात कर रहे थे)।
और यदि ऐसा नहीं होता है तो वे ऑटोरेलीज़ का भी उल्लेख क्यों करेंगे?
दरअसल - अगर कोई वास्तव में विशेष रूप से इस प्रश्न का उत्तर जानता है ...... आप कैसे जानते हैं?! क्या आपने डीटीएस, या परीक्षण के माध्यम से पूछा था, या? मेरा सुझाव है, मुख्य दस्तावेज (केवल चिपकाया गया) आक्रामक रूप से अस्पष्ट है।
फिर से - अगर आप एक IBOutlet, लेकिन एक संपत्ति, एक "उच्च-स्तरीय" वस्तु .. आप इसे जारी करने के लिए जिम्मेदार हैं से कनेक्ट नहीं? क्या यह बरकरार है? उस स्थिति में?
उस मामले के लिए .... केवल स्थिति में (1) क्या यह बिल्कुल मामला है कि BigView दूर जाने पर चीज़ जारी की जाएगी? मैं निश्चित रूप से यह मानता हूं कि यह मामला है, लेकिन कौन जानता है?
सवाल,
मैं गया है मूर्खता कभी नहीं इस बारे में पहले/बहुत ज्यादा मान लिया सोचा अगर आप एक IBOutlet इवर प्रयोग करते हैं कि क्या होता है, लेकिन नहीं एक संपत्ति है ... किसी को भी करता निर्णायक जवाब है? चीयर्स !!
रिकॉर्ड के लिए मैंने एक परीक्षण परियोजना बनाई है।
वास्तव में (आश्चर्यजनक रूप से मेरे लिए) आईबी तत्व को आईबी तत्व से जोड़ने का एकमात्र कार्य वास्तव में स्पष्ट रूप से को बनाए रखता है।
(मैं केवल घटिया दस्तावेज से यह मान सकते हैं, उस स्थिति में आप विशेष रूप से मिलता है:। रखें, autorelease, को बनाये रखें - अग्रणी एक संतुलन पर बनाए रखने के लिए)
तो, कि इसका जवाब है।
मैं डेमो प्रोजेक्ट पोस्ट करूंगा। मैं किसी भी पाठकों को जोना के उत्तर में भी निर्देशित करता हूं जो निर्दोष रूप से सेटवैल्यू के व्यवहार को समझाता है: के लिए: चीयर्स
आपको बहुत बहुत धन्यवाद। मैं बिल्कुल वही प्रश्न सोच रहा था! मैं सेब डॉक्स पढ़ने के बाद इतना उलझन में था इसलिए मैं पूरी तरह से अनिश्चित था कि इसमें क्या विश्वास करना है और इस स्पष्टीकरण के लिए योना को भी धन्यवाद। – Buju
यह एक अजीब है हू - मैं आपसे सहमत हूं। अप-वोट के लिए धन्यवाद क्योंकि इसने मुझे "सुपर-पावर पावर" या इस साइट पर कुछ दिया !!! मैं दुनिया का राजा हूँ !!! – Fattie