ios - आईओएस में[कक्षा नई] और[[कक्षा आवंटन] init] के बीच क्या अंतर है?
objective-c new-operator (2)
संभावित डुप्लिकेट:
उद्देश्य-सी में आवंटित, init, और नया
मैं [Class new]
और [[Class alloc] init]
बारे में थोड़ा उलझन में हूँ। मैंने [Class new]
और [[Class alloc] init]
का उपयोग कर एक ऑब्जेक्ट content
परिभाषित की है।
(1). NSMutableArray *content = [NSMutableArray new];
(2). NSMutableArray *content = [[NSMutableArray alloc] init];
मेरा सवाल [Class new]
और [[Class alloc] init]
बीच अंतर के बारे में है। मेरे लिए, (1) और (2) समान हैं। यदि (1) और (2) समान हैं, तो हम [[Class alloc] init]
की तुलना में अधिकांश समय [[Class alloc] init]
उपयोग क्यों करते हैं? मुझे लगता है कि कुछ अंतर होना चाहिए।
कृपया मतभेद, पेशेवरों और दोनों के विपक्ष की व्याख्या करें?
यहां: उद्देश्य-सी में आवंटित, init, और नया
असल में यह आधुनिक बनाम पारंपरिक का सवाल है। नए पर init का सबसे प्रत्यक्ष लाभ यह है कि कई कस्टम init विधियां हैं।
+new
-init
और -init
लिए +new
विधि बस -init
। स्वामित्व अर्थशास्त्र समान हैं। +new
उपयोग करने का एकमात्र लाभ यह है कि यह अधिक संक्षिप्त है। यदि आपको कक्षा के आरंभिक को तर्क प्रदान करने की आवश्यकता है, तो आपको इसके बजाय +alloc
और -initWith...
विधियों का उपयोग करना होगा।