के लिए यह इरादा जब आप override
एक प्रारंभकर्ता जैसे init(frame: CGRect)
, आप इसे एक नामित प्रारंभकर्ता के खिलाफ करते हैं, प्रिंसिपल प्रारंभकर्ता एक वस्तु प्रोग्राम के रूप में बनाने के लिए जिम्मेदार यानी। नियमों के अनुसार, आपको super.init
पर से पहले किसी अतिरिक्त इनिट क्रियाओं को निष्पादित करना होगा।
दूसरी तरफ आवश्यक प्रारंभिक, नामित के समान नहीं हैं।
आवश्यक initializers
आवश्यक संशोधक लिखें से पहले एक वर्ग प्रारंभकर्ता की परिभाषा संकेत मिलता है कि वर्ग के हर उपवर्ग कि प्रारंभकर्ता को लागू करना चाहिए।
आपको प्रत्येक उपclass आवश्यक प्रारंभिक के कार्यान्वयन से पहले आवश्यक संशोधक लिखना होगा, यह इंगित करने के लिए कि प्रारंभकर्ता आवश्यकता श्रृंखला में और उप-वर्गों पर लागू होती है। आप आवश्यक नामित प्रारंभकर्ता को ओवरराइड करते समय ओवरराइड संशोधक नहीं लिखते हैं।
स्रोत: Apple Documentation On Initializers
आपको आवश्यक प्रारंभकर्ता अपनी इच्छा की परवाह किए बिना लागू करता है, तो मूल वर्ग कि प्रारंभकर्ता के रूप में आवश्यक के रूप में चिह्नित किया गया है, जब आप एक उपवर्ग हैं। आम तौर पर, आपको इसे ऑब्जेक्ट बनाने के लिए सीधे कॉल नहीं करना चाहिए, हालांकि कुछ मामलों में आप करते हैं। आवश्यक प्रारंभिकरणों को कई, अच्छी तरह से, आवश्यकताओं का अनुपालन करने के लिए चिह्नित किया गया है। उदाहरण के लिए, required init?(coder: NSCoder)
कई मामलों में बुलाया जाता है। एक मामला: जब आईबी से दृश्य बनाया जाता है। एक और मामला - जब कोई ऑब्जेक्ट बनाया जाता है, या इसके बजाय, अनारक्षित (जिसे deserialization कहा जाता है) मैन्युअल रूप से। वास्तव में, जब आप उस ऑब्जेक्ट को व्यू कंट्रोलर के दृश्य (उदाहरण के लिए) पर रखते हैं, तो वह ऑब्जेक्ट भी अनारक्षित है, यानी इसकी सभी गुणों को लोड और सेट किया जाता है।
जाहिर है, जब आप कुछ दृश्यों का उप-वर्ग बनाते हैं, तो आपको इसे इस इंटरफ़ेस का समर्थन करना होगा, जो deserialization क्षमता प्रदान करता है (यदि इसे कभी-कभी इंटरफ़ेस बिल्डर या किसी भी प्रकार से उपयोग किया जाता है)। यही कारण है कि यह required
है।
[स्विफ्ट भाषा डॉक्स] (https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html#//apple_ref/doc/uid/TP40014097-CH18 पढ़ने के बारे में कैसे करें -XID_335) प्रारंभिकरण के बारे में? – holex
@ होलेक्स सुपर आलसी के बारे में कैसे – BlueBoy