में एनएसओब्जेक्ट सबक्लास के प्रारंभकर्ता में super.init() को कॉल करना मैं स्विफ्ट में एक आईओएस ऐप बना रहा हूं और Lister नमूना प्रोजेक्ट ऐप्पल प्रदान करता हूं।स्विफ्ट
लिस्टर दो मॉडल ऑब्जेक्ट्स का उपयोग करता है: सूची और सूची Item। मैंने पाया कि उनमें से दोनों अपने प्रारंभिकरण में super.init()
पर कॉल नहीं करते हैं, भले ही वे NSObject subclass।
हालांकि, लिस्टर के उद्देश्य-सी संस्करण में, मॉडल ऑब्जेक्ट्स (एएपीएललिस्ट और एएपीएललिस्ट इटिम) दोनों [super init]
पर कॉल करते हैं।
स्विफ्ट प्रोग्रामिंग भाषा स्पष्ट रूप से कहा गया है कि "नामित initializers उनके तत्काल सुपर क्लास से एक नामित प्रारंभकर्ता कॉल करना होगा।" (प्रारंभ में प्रारंभकर्ता श्रृंखलन के नियम 1)
यहाँ क्या हो रहा है? यह एक अपवाद क्यों है और यदि आपको हमेशा उपखंड में super.init() पर कॉल नहीं करना चाहिए, तो कौन से नियम लागू होते हैं?