दिलचस्प पोस्ट
क्रॉस डोमेन अनुरोध कैसे करें एचटीएमएल / सीएसएस – कुछ तत्वों पर सफेद स्थान के संरक्षण के लिए सर्वश्रेष्ठ अभ्यास? क्या Outlook 2010 एक वेब फॉन्ट का उपयोग HTML ईमेल में कर सकता है? MySQL LAST_INSERT_ID () एकाधिक रिकॉर्ड INSERT स्टेटमेंट के साथ प्रयोग किया जाता है क्या मैं डिस्पोज़ () डाटासेट और डाटाटेबल? 2 फ़ंक्शन एक ही समय में चलाएं जावा – क्लास ग्रिडलेआउट प्रबंधक के साथ रीसायकलदृश्य में आइटम खींचें और ड्रॉप करें अमेज़ॅन एस 3 कॉरस (क्रॉस-ओरिजिन रिसोर्स शेयरिंग) और फ़ायरफ़ॉक्स क्रॉस-डोमेन फ़ॉन्ट लोडिंग JCombobox एक और JCombobox बदलना जीआईटी में निर्दिष्ट प्रतिबद्धता को कैसे संशोधित करें? jaxb (unmarshal) का उपयोग करके जावा ऑब्जेक्ट को बदलना रेज़र / सीएसएचटीएमएल – हमारे पास जो भी लाभ है? एसक्यूएल की तरह और एक साथ में उपयोग करना किसी स्विंग विंडो के सापेक्ष किसी माउस क्लिक का स्थान कैसे प्राप्त करें

बनाम init के बीच का अंतर]

क्या कोई मुझे बता सकता है कि इनके साथ एक अस्थायी सरणी घोषित करने में क्या अंतर है:

NSMutableArray *array = [NSMutableArray array]; 

तथा

 NSMutableArray *array = [[NSMutableArray alloc] init]; 

क्योंकि शुरुआत में मैं alloc के साथ अपने सभी arrays घोषणा कर रहा था, और अगर एक निश्चित समारोह के अंत में मैं alloc के साथ बनाई गई सरणी लौटा, मुझे याद है कि स्मृति रिसाव की समस्याओं के कारण, कि सरणी autorelease था।

अब पहली घोषणा का उपयोग करने के लिए मुझे कुछ भी रिलीज करने की आवश्यकता नहीं है

धन्यवाद

Solutions Collecting From Web of "बनाम init के बीच का अंतर]"

क्योंकि शुरुआत में मैं alloc के साथ अपने सभी arrays घोषित कर रहा था और अगर एक निश्चित समारोह के अंत में मैं alloc के साथ बनाया सरणी लौटे है कि ऑटोरेयर कृपया था, क्योंकि स्मृति रिसाव समस्याओं अब पहले घोषणा का उपयोग करने के लिए मुझे कुछ भी रिलीज करने की ज़रूरत नहीं है

यह वास्तव में सही है जब आप किसी ऑब्जेक्ट "vend" करते हैं लेकिन अन्य मामलों में, जब आप आईओएस पर कोई ऑब्जेक्ट बनाते हैं, जहां आपके पास एक तैयार ऑररेलेज़ेड ऑब्जेक्ट प्राप्त करने और रिलीज़ होने के बाद आलोक को फोन करने में कोई विकल्प होता है, तो ऐप्पल चाहता है कि आप आलोक का इस्तेमाल करें और रिलीज करें, क्योंकि यह ऑब्जेक्ट के जीवनकाल में रहता है छोटा और अपने नियंत्रण में

यहां समस्या यह है कि आटोरेलेज्ड ऑब्जेक्ट ऑटोरिवेट पूल में रहते हैं और जब तक कि पूल समाप्त नहीं हो जाता तब तक ढेर हो सकता है।

देखने के लिए एक अन्य चीज लूप है आप इसके बारे में अवगत किए बिना ऑटोरेलेज़ ऑब्जेक्ट उत्पन्न कर सकते हैं, और वे पूल में बस ढेर कर देते हैं समाधान लूप की शुरुआत में अपना स्वयं का ऑटोरियोज पूल बनाना है और इसे लूप के अंत में रिलीज करना है, ताकि प्रत्येक बार लूप के माध्यम से ऑब्जेक्ट्स को रिलीज़ किया जा सके।

संपादित करें – 12/18/2011: लेकिन आईओएस 5 और एआरसी के आगमन के साथ, ऑटोरेक्लेज़ तंत्र बहुत अधिक कुशल है, और release जैसी कोई चीज नहीं है, इसलिए आलोक-इनट और एक सुविधा निर्माता के बीच भेद एक ऑटोरेलेज़ ऑब्जेक्ट विवादास्पद हो जाता है (यह भी अब एक autorelease पूल (छद्म-) वस्तु के बजाय एक @autoreleasepool ब्लॉक है।)

array वर्ग पद्धति स्वयं द्वारा एक आटोरेलेज़ेड सरणी का उत्पादन करती है, जिसका अर्थ है कि आपको इसे मैन्युअल रूप से रिलीज़ नहीं करना चाहिए (और नहीं होना चाहिए)