जो मैं समझता हूं, उससे मुझे ऐप्पल से एक निश्चित स्रोत नहीं मिल रहा है, हालांकि unowned
को दो स्वाद, safe
और unsafe
में विभाजित किया जा सकता है।
एक नंगे unowned
unowned(safe)
है: यह एक विशेष रूप से लिपटे संदर्भ जो एक अपवाद है जब एक dealloced उदाहरण संदर्भित है फेंक नहीं है।
विशेष मामला unowned(unsafe)
है: यह उद्देश्य सी के @property (assign)
या __unsafe_unretained
के स्विफ्ट समतुल्य है। इसका उपयोग स्विफ्ट प्रोग्राम में नहीं किया जाना चाहिए, क्योंकि इसका उद्देश्य उद्देश्य सी
में लिखे गए कोड को पुल करना है, तो आप कोको कक्षाओं के लिए आयात रैपर को देखते समय unowned(unsafe)
देखेंगे, लेकिन इसका उपयोग तब तक नहीं करें आपको करना होगा, और आपको पता चलेगा कि आपको कब करना है।
अद्यतन
__unsafe_unretained
एक सरल सूचक है। यह नहीं पता होगा कि जिस घटना पर ध्यान दिया जा रहा है उसे हटा दिया गया है, इसलिए जब इसे संदर्भित किया जाता है, तो अंतर्निहित स्मृति कचरा हो सकती है।
यदि आपके पास कोई दोष है जहां एक dealloced __unsafe_unretained
चर का उपयोग किया जा रहा है, तो आप अनियमित व्यवहार देखेंगे। कभी-कभी उस मेमोरी लोकेशन के लिए पर्याप्त पर्याप्त होता है, इसलिए कोड चलाया जाएगा, कभी-कभी इसे आंशिक रूप से ओवरराइट किया जाएगा ताकि आपको बहुत ही क्रैश हो जाएंगे, और कभी-कभी उस मेमोरी लोकेशन में एक नई ऑब्जेक्ट होगी ताकि आपको अपरिचित चयनकर्ता अपवाद मिल जाए।
Transitioning to ARC Release Notes
__unsafe_unretained
एक संदर्भ है कि संदर्भित वस्तु को जीवित रखने के नहीं है और नहीं के बराबर करने के लिए सेट नहीं है जब वहाँ वस्तु के लिए कोई मजबूत संदर्भ हैं निर्दिष्ट करता है। यदि ऑब्जेक्ट का संदर्भ अस्वीकार कर दिया गया है, तो पॉइंटर लटक रहा है।
स्रोत
2014-10-24 22:09:32
लेकिन उन ऑब्जेक्टिव-सी समकक्ष क्या मतलब है? – orome
तो संक्षेप में, 'मजबूत' संदर्भों के विपरीत, 'कमजोर' और सभी 'अज्ञात' संदर्भ गणना में योगदान नहीं देते हैं। तो एक बार सभी 'मजबूत' संदर्भ समाप्त हो जाने के बाद, संदर्भित संदर्भ को हटा दिया जाएगा (जब केवल 'कमजोर' और 'अज्ञात' संदर्भ इसके लिए बने रहेंगे); 'कमजोर' संदर्भ 'शून्य' पर सेट किए जाएंगे (इस प्रकार उनके पास वैकल्पिक प्रकार होगा), जबकि 'अज्ञात' नहीं होगा। हालांकि 'बिना स्वामित्व वाले (सुरक्षित)' संदर्भ उदाहरणों पुनः आवंटित की जाती है, जबकि 'बिना स्वामित्व वाले (असुरक्षित)' संदर्भ एक साधारण वर्ष सूचक की तरह काम करते हैं और अप्रत्याशित व्यवहार करेगा, जब तक पहुँचा एक उम्मीद के मुताबिक अपवाद फेंक देते हैं। सही? – orome
हां, यह एक अच्छा सारांश है। –