एआरसी आपको कुछ प्रकार के रिसाव को खत्म करने में मदद करेगा, क्योंकि आप release
या autorelease
एकल ऑब्जेक्ट्स को नहीं भूलेंगे। उदाहरण के लिए, इस प्रकार की त्रुटि असंभव हो जाती है:
myLabel.text = [[NSString alloc] initWithFormat:@"%d", 17];
// oops, just leaked that NSString!
हालांकि, एआरसी चक्र बनाए रखने के कारण लीक को खत्म नहीं करेगा। कमजोर संदर्भों का उपयोग करके या चक्रों को मैन्युअल रूप से तोड़ने से पहले चक्र को तोड़कर, चक्रों को बनाए रखने के लिए यह अभी भी आपके ऊपर है। उदाहरण के लिए, जैसे ही हम ब्लॉक का अधिक उपयोग करना शुरू करते हैं, ब्लॉक/स्वयं बनाए रखने वाले चक्र अधिक आम हो जाते हैं। Transitioning to ARC Release Notes कमजोर संदर्भों का उपयोग करके इन चक्रों से बचने के तरीके पर चर्चा करें।
स्रोत
2012-01-21 06:04:25
नहीं, एआरसी पूरी तरह मेमोरी लीक को खत्म नहीं करेगा। देखें [उद्देश्य-सी के स्वचालित संदर्भ गिनती (एक्सकोड 4.2 में) किस तरह की रिसाव को रोकता/छोटा नहीं करता है?] (Http://stackoverflow.com/questions/6260256/what-kind-of-leaks-does-objective-cs - स्वचालित-संदर्भ-गिनती-इन-एक्सकोड -4-2) – BoltClock