2011-08-30 10 views
44

में ज़ीरोइंग कमजोर संदर्भ यदि माइक ऐश के "Zeroing Weak References" writeup का मेरा पठन सही है, तो कमजोर संदर्भ assign एआरसी के बिना संदर्भ हैं। हालांकि, यदि संदर्भित ऑब्जेक्ट को "लैंडिंग पॉइंटर" (जिसका मतलब है कि एक पॉइंटर जो एक डिलीओटेड ऑब्जेक्ट को इंगित करता है) प्राप्त करने के बजाय, पॉइंटर nil पर सेट हो जाता है।एआरसी

क्या यह अधिकार है, और क्या यह weak या assign (जब एआरसी सक्रिय है) चिह्नित किसी भी संपत्ति के साथ ऐसा होता है?

यदि यह सही है, तो यह बहुत सारे SIGABRT को खत्म कर देगा।

उत्तर

38

यह अधिकतर सही है, लेकिन assign गुणों को अभी भी वही माना जाता है जैसा कि वे कभी भी थे, केवल weak शून्य हैं। एक और चेतावनी यह है कि शून्य कमजोर संदर्भ केवल मैक ओएस एक्स ≥ 10.7 और आईओएस 5 में उपलब्ध हैं। जबकि बाकी एआरसी को 10.6 और आईओएस 4 में बैकपोर्ट किया गया था, इन ओएस पर कमजोर संदर्भों का उपयोग नहीं किया जा सकता है।

+6

उस @ कोबबल के लिए धन्यवाद। कम से कम XCode 4.2 बीटा में, यदि आप परिनियोजन लक्ष्य

+1

धन्यवाद @ यार, मुझे वह त्रुटि मिल रही थी और यह नहीं पता था कि यह कहां से आया था! – Pascal

+1

पीछे संगतता के बारे में उत्कृष्ट बिंदु। – jlehr