2012-02-27 14 views
21

मैं एआरसी के साथ ऑब्जेक्ट बनाने से कैसे जमानत कर सकता हूं?आर्क के साथ किसी ऑब्जेक्ट की init से बाहर निकलें?

मैं इस के एआरसी समकक्ष (स्मृति से) के लिए देख रहा हूँ:

- (id)init 
{ 
    if ((self = [super init])) { 
     if (!condition) { 
      [self release]; 
      self = nil; 
      return self; 
     } 
    } 
    return self; 
} 

उत्तर

26

बस release करने के लिए कॉल से छुटकारा पाने और आप ठीक हो जाओगे। चूंकि आप स्वयं को निगलते हैं, पुराने स्वयं के लिए कोई और संदर्भ नहीं होगा, इसलिए इसे हटा दिया जाएगा।

- (id)init; 
{ 
    if ((self = [super init])) { 
     if (!condition) { 
      return nil; 
     } 
    } 
    return self; 
} 
+1

मुझे उम्मीद थी कि यह मामला था, लेकिन यह बहुत आसान लग रहा था। –

+3

स्वयं को 'शून्य' असाइन करना आवश्यक नहीं है। आप बस 'वापसी शून्य' कह सकते हैं और एआरसी वस्तु को छोड़ देगा। –

+0

बस 'शून्य वापस काम' होगा? –

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