OS X v10.11 beta release notes में है, मैं निम्नलिखित है:क्या एक "गैर-कमजोर के शून्यीकरण संदर्भ"
NSNotificationCenter और NSDistributedNotificationCenter अब पंजीकृत पर्यवेक्षकों कि पुनः आवंटित की जाती किया जा सकता है पर सूचनाएं भेजने। यदि पर्यवेक्षक शून्य-कमजोर संदर्भ के रूप में संग्रहीत करने में सक्षम है, अंतर्निहित भंडारण पर्यवेक्षक को शून्य कमजोर संदर्भ के रूप में संग्रहीत करता है। वैकल्पिक रूप से, यदि ऑब्जेक्ट को कमजोर रूप से संग्रहीत नहीं किया जा सकता है (क्योंकि इसमें कस्टम रीटेन/रिलीज़ तंत्र है जो रनटाइम को ऑब्जेक्ट को कमजोर रूप से स्टोर करने में सक्षम होने से रोकता है) ऑब्जेक्ट को गैर-कमजोर शून्यिंग संदर्भ के रूप में संग्रहीत किया जाता है। इसका मतलब है कि पर्यवेक्षकों को उनकी डीलोकेशन विधि में पंजीकरण करने की आवश्यकता नहीं है। [जोर मेरा]
यह मुझे समझ में नहीं आता है। यदि यह एक गैर-कमजोर संदर्भ है, तो क्या यह एक मजबूत संदर्भ नहीं होगा? तो NSNotificationCenter अभी भी एक मालिक होगा, इसलिए ऑब्जेक्ट को मैन्युअल रूप से अनियंत्रित नहीं किया जाएगा, इसलिए इस संदर्भ में यह "शून्यकरण" कहने के लिए गैरकानूनी है।
यदि यह __unsafe_unretained
संदर्भ का एक प्रकार का जिक्र कर रहा है, तो सवाल यह है कि ... NSNotificationCenter एक ज़ोंबी मैसेजिंग से कैसे बचेंगे?
swizzling की तरह का एक उदाहरण कार्यान्वयन के लिए मैं इसका जिक्र कर रहा हूं, [MAZeroingWeakRef] पर एक नज़र डालें (https://github.com/mikeash/MAZeroingWeakRef/)। –
बहुत गहन जवाब, और बिल्कुल स्पष्टीकरण की तरह मैं उम्मीद कर रहा था। धन्यवाद! – natevw