दिलचस्प पोस्ट
जावास्क्रिप्ट: एंबेड-टैग के src-attribute को बदलना Laravel 5: ब्लेड के साथ एचटीएमएल प्रदर्शित करें आखिरी पंक्ति में फ्लेक्स आइटम को लक्षित करना वॉचकिट एक्सटेंशन – कोई मिलती-जुलती प्रावधान प्रोफ़ाइल नहीं मिली बहुत बड़ी टेक्स्ट फ़ाइल की अंतिम 10 लाइनें प्राप्त करें> 10 जीबी कैसे नोड। Js के कंसोल फ़ॉन्ट रंग को बदलना है? html5 समय इनपुट 12 घंटे दिखाता है पायथन: बाइंडिंग सॉकेट: "पता पहले से उपयोग में है" एएसपी.नेट एमवीसी: डेटाएनेटेशन द्वारा कस्टम वैल्यूशन वेब पेज के नीचे रहने के लिए आप पाद लेख कैसे प्राप्त कर सकते हैं? सी ++ 11 "ऑटो" शब्दार्थ मैं एक सिस्टम डिवाइस को प्रोग्रामैटिक रूप से अक्षम कैसे कर सकता हूं? मेटा टैग के साथ ताज़ा करने पर इनपुट मान को याद करने से फ़ायरफ़ॉक्स को रोकना फ़ाइलों को प्रोग्रामेटिक रूप से अनजिप करें .net जीआईटी चेरी-पिक बनाम मर्ज वर्कफ़्लो

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

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

[[Class alloc] init] 

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

 [Class new] 

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

वेब के समाधान से एकत्रित समाधान "आलोक, init, और उद्देश्य सी में नया"

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

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

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

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

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

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

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

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