दिलचस्प पोस्ट
गतिविधि में नहीं होने वाले स्थानों में getLayoutInflater () को कॉल करें गिट में वर्तमान शाखा में नवीनतम टैग नाम कैसे प्राप्त करें? पायथन मल्टीलाइन तारों के लिए उचित इंडेंटेन्ट एंड्रॉइड: onInterceptTouchEvent और dispatchTouchEvent के बीच का अंतर? कैसे दो आकृतियों की तुलना करें? UIGestureRecognizer स्पर्श घटनाओं को संभालने के लिए सबव्यूज को अवरोधित करता है जावास्क्रिप्ट में यूआरएल यूआरएल? एक वेबफॉर्म से एक MVC HtmlHelper का उपयोग करना कैसे PHP virus फ़ाइलों की तरह eval-base64_decode से छुटकारा पाने के लिए? डेल्फी 2010: एक फ़ाइल में पूरे रिकॉर्ड को कैसे सहेज सकता है? जावास्क्रिप्ट का उपयोग करते हुए एक सत्र कैसे बनाएं? मेमोअनाइजेशन और डायनामिक प्रोग्रामिंग में अंतर क्या है? मैं कोष्ठक (राउंड ब्रैकेट) के बीच का पाठ कैसे निकाल सकता हूं? सी भाषा में अस्थिर खोजशब्द? PHP SimpleXML नामस्थान समस्या

आलोक, init, और उद्देश्य सी में नया

के बारे में iPhone प्रोग्रामिंग के लिए एक किताब इस तरह से कक्षाओं instantiates:

[[Class alloc] init] 

उद्देश्य सी के बारे में एक और किताब यह इस तरह करती है:

 [Class new] 

क्या फर्क पड़ता है?

Solutions Collecting From Web of "आलोक, init, और उद्देश्य सी में नया"

मूलतः उद्देश्य-सी में, वस्तुओं को नए के साथ बनाया गया था ओपनस्टेप / कोको फ्रेमवर्क के रूप में विकसित हुए, डिजाइनरों ने राय विकसित की कि वस्तु के लिए स्मृति को आवंटित करने और इसके गुणों को आरम्भ करने के लिए अलग-अलग चिंताओं का विषय था और इस तरह अलग तरीकों (उदाहरण के लिए, किसी ऑब्जेक्ट को विशिष्ट मेमोरी ज़ोन में आवंटित किया जा सकता है) होना चाहिए। इसलिए ऑब्जेक्ट सृजन की आबंट-इनट शैली को पक्ष में मिला।

असल में, नया पुराना है और लगभग-पर-बहुत-बहुत नापसंद है – इस प्रकार आप देखेंगे कि कोका क्लास के पास बहुत सारे init विधियां हैं लेकिन लगभग कोई भी कस्टम नए तरीके कभी नहीं।

+new काफी शाब्दिक रूप से लागू किया गया है:

 + (id) new { return [[self alloc] init]; } 

न कुछ ज्यादा, न कुछ कम। कक्षाएं इसे ओवरराइड कर सकती हैं, लेकिन यह बहुत कुछ करने के पक्ष में बहुत ही असामान्य है +fooWithBar: :।

जैसा कि पहले ही उल्लेख किया गया है, defaut द्वारा कोई अंतर नहीं है। लेकिन आप new कक्षा विधि को अधिलेखित कर सकते हैं। एप्पल के प्रलेखन के बारे में कुछ विचार हैं।

एएलओसी के विपरीत, कभी-कभी क्लास-विशिष्ट आरंभीकरण विधि को लागू करने के लिए नए उप- परिसरों में फिर से कार्यान्वित किया जाता है […] अक्सर नए … तरीके सिर्फ आवंटन और आरंभीकरण से अधिक करेंगे

यह कक्षा पर निर्भर करता है, लेकिन [Class new] सबसे अधिक संभावना है जो एक सुविधा पद्धति है जो [[Class alloc] init] आंतरिक रूप से कॉल करता है इस प्रकार, आप "initWithString" जैसे अन्य init विधियों को कॉल नहीं कर सकते