2012-01-16 17 views
6

मैं के माध्यम से "iOS के लिए प्रो। ऑब्जेक्टिव-सी डिजाइन पैटर्न" जा रहा था चुंग द्वारा औरकॉपीविथज़ोन में "जोन" का अर्थ क्या है :?

_sharedSinglton = [[super allocWithZone: NULL] init];

मैं भी NSCopying के लिए एप्पल के दस्तावेज में देखा पाया है, लेकिन वास्तव में क्या नहीं समझ सकता एक क्षेत्र वास्तव में माध्यम।

उत्तर

7

NSZone अब अप्रचलित है, लेकिन वापस NEXTSTEP दिनों में, NSZone कोको में "मॉलोक जोन्स" की अवधारणा लाने का प्रयास था। यहां कुछ दस्तावेज़ दिए गए हैं जो वर्णन करते हैं कि यह सक्षम होने पर यह कैसे काम करता था: http://www.cocoadev.com/index.pl?NSZone

+0

तो, 'ज़ोन' को 'न्यूल' और 'डिफ़ॉल्ट' के रूप में निर्दिष्ट करने के लिए अलग कैसे है? –

+3

मैंने अभी Google पर पुस्तक और उद्धरण देखा है। मुझे लगता है कि वे '-allocWithZone:' का उपयोग करने का कारण यह है कि इस मामले में उनका सिंगलटन पैटर्न पहले से ही '-alloc' ओवरराइड करता है, और वे अपने' -लोक 'ओवरराइड से बचने का एक आसान तरीका चाहते थे। '-allocWithZone: 'ओवरराइड को हटा देता है (चूंकि वे उस विधि को कभी भी ओवरराइड नहीं करते हैं) लेकिन सामान्य' -लोक 'की तुलना में किसी भी व्यवहार को नहीं बदलता क्योंकि ज़ोन अप्रचलित हैं और कुछ भी नहीं करते हैं। असल में, यह एक आसान तरीका है '-alloc' के अपने ओवरराइड को चकमा देने के लिए एक चाल है, और जोन हिस्सा अप्रासंगिक है। स्पष्टीकरण के लिए – StilesCrisis

+0

धन्यवाद @StilesCrisis; तो, क्या हम 'जोन' को 'ऑटोरेलीज' पूल (ऑटोरेलीज कार्यक्षमता के बिना) से जोड़ सकते हैं? –

संबंधित मुद्दे