व्यावसायिक कार्यक्रम "आईओएस डेवलपर" - स्विफ्ट 5 का उपयोग करके मोबाइल एप्लिकेशन विकसित करने के लिए 5 महीने का सर्वश्रेष्ठ अभ्यास। 12 ओटीएस साझेदार कंपनियों के साक्षात्कार में सर्वश्रेष्ठ स्नातकों की उम्मीद है, इसलिए हम श्रृंखला के अंतिम लेख "आईओएस साक्षात्कार प्रश्न (स्विफ्ट)" से एक अनुवाद प्रकाशित करते हैं, जहां हम अधिक विचार करेंगे दर्जनों सवाल, जिनके जवाब आपको रोजगार देने में मदद करेंगे।

1. दोष क्या हैं और उनका उपयोग कहां किया जा सकता है?
- क्लोज़र स्व-निहित कोड के टुकड़े हैं जो एक फ़ंक्शन के पास एक तर्क के रूप में पारित किए जा सकते हैं या एक कार्यक्रम में उपयोग किए जा सकते हैं।
- स्विफ्ट में क्लोज़र सी और ऑब्जेक्टिव-सी में ब्लॉक की तरह हैं और अन्य प्रोग्रामिंग भाषाओं में लैम्ब्डा की तरह हैं।
- यह लगभग फ़ंक्शन के समान है, लेकिन क्लोजर का नाम नहीं है।
- प्रत्येक पैरामीटर के प्रकार को घोषित करने की आवश्यकता नहीं है, लेकिन यदि आप करते हैं, तो आपको रिटर्न मान के प्रकार को निर्दिष्ट करने की आवश्यकता नहीं है।
सभी बंद सिंटैक्स विकल्पों को देखने के लिए लिंक का पालन करें।
2. बंद होने से बचने / क्या कर रहे हैं?
@ नोन्सोसेडिंग (मानक) क्लोजर:
- जब क्लोजर फ़ंक्शन के तर्कों में पास हो जाता है और फ़ंक्शन के बॉडी को निष्पादित करने और रिटर्न को नियंत्रित करने से पहले इसका उपयोग किया जाता है।
- जब फ़ंक्शन पूरा हो जाता है, तो पारित बंद गुंजाइश से बाहर हो जाता है और अब स्मृति में मौजूद नहीं है।
@ बचना (भगोड़ा) बंद करना:
- जब फ़ंक्शन फ़ंक्शन में क्लोज़र पास किया जाता है और फ़ंक्शन बॉडी निष्पादित होने के बाद उपयोग किया जाता है और रिटर्न को नियंत्रित करता है।
- जब फ़ंक्शन पूरा हो जाता है , तो प्रेषित बंद होने की गुंजाइश बनी रहती है और बंद होने तक स्मृति में बनी रहती है। लिंक
3. बताइए कि स्विफ्ट में किस प्रकार के संग्रह उपलब्ध हैं?

- Arrays - एक क्रमबद्ध रूप में एक ही प्रकार के कई मूल्यों को संग्रहीत करने के लिए उपयोग किया जाता है।
- सेट (सेट) - एक ही प्रकार के विभिन्न मूल्यों को अनियंत्रित रूप में संग्रहीत करने के लिए उपयोग किया जाता है।
- शब्दकोश - उपयोग किए गए कुंजी-मूल्य जोड़े को अनियंत्रित रूप में संग्रहीत करने के लिए उपयोग किया जाता है।
4. आधार वर्ग को स्विफ्ट में कैसे परिभाषित किया जाता है?
स्विफ्ट में, वे कक्षाएं जो बेस क्लास से विरासत में नहीं आती हैं, और वे कक्षाएं जिन्हें आप सुपरक्लास निर्दिष्ट किए बिना परिभाषित करते हैं, स्वचालित रूप से बेस क्लास बन जाते हैं।
5. डेनिएटाइज़र क्या हैं और स्विफ्ट में कैसे लिखे जाते हैं?
क्लास इंस्टेंस द्वारा कब्जे वाली मेमोरी को मुक्त करने से तुरंत पहले डी-इनिशाइज़र घोषित किया जाता है। Deinitializer कीवर्ड deinit के साथ लिखा जाता है। इसका उपयोग तब किया जाता है जब आपको ऑब्जेक्ट द्वारा कब्जा की गई मेमोरी को मुक्त करने से पहले कोई कार्रवाई या सफाई करने की आवश्यकता होती है।
उदाहरण के लिए , यदि आप किसी फ़ाइल को खोलने के लिए एक कस्टम क्लास बनाते हैं और उस पर कुछ डेटा लिखते हैं, तो आपको क्लास इंस्टेंस द्वारा कब्ज़ा की गई मेमोरी को खाली करने से पहले फाइल को बंद करना होगा।
डिनायस्टाइज़र को कोष्ठक के बिना लिखा जाता है और किसी भी पैरामीटर को स्वीकार नहीं करता है।
deinit { // }
6. दोहरे प्रश्न चिह्न "??" का उपयोग कब किया जाता है?
इस ऑपरेटर को नील जॉइन ऑपरेटर कहा जाता है । यदि विकल्प शून्य है, तो इसे डिफ़ॉल्ट मान सेट करने के लिए उपयोग किया जाता है।
let a: String? = nil let b = "nil coalescing operator" let result = a ?? b print(result) //:"nil coalescing operator"
- एक ?? अगर यह एक मान है, तो b decompresses वैकल्पिक है, या यदि nil है, तो डिफ़ॉल्ट मान b लौटाता है।
- अभिव्यक्ति में हमेशा एक वैकल्पिक प्रकार होता है। अभिव्यक्ति b को उस प्रकार से मेल खाना चाहिए जो a के अंदर संग्रहीत है।
6. 'क्या अंतर है?' और '?'
प्रतीक "?"
- विकल्पों के साथ काम करते समय, आप "डाल सकते हैं?" कमांड सेट के सामने जैसे विधियाँ, गुण और सदस्यताएँ।
- यदि मान "से पहले है?" बराबर नील, फिर सब कुछ जो "बाद?" नजरअंदाज कर दिया, और पूरे अभिव्यक्ति का मूल्य शून्य हो जाता है।
- अन्यथा, विकल्प अनपैक किया गया है, और सब कुछ "के बाद आता है?" अनपैक्ड मान पर कार्य करता है।
- दोनों मामलों में, संपूर्ण अभिव्यक्ति का मूल्य वैकल्पिक है।
प्रतीक "!"
- यह सुनिश्चित करने के बाद कि वैकल्पिक में एक मान है, आप वैकल्पिक नाम के अंत में एक विस्मयादिबोधक चिह्न (!) जोड़कर इसके आधार मूल्य तक पहुंच सकते हैं।
- विस्मयादिबोधक बिंदु वास्तव में कहता है: “मुझे पता है कि यह विकल्प वास्तव में मायने रखता है; कृपया इसका उपयोग करें। "
- इसका उपयोग केवल तभी करें जब आप पूरी तरह से आश्वस्त हों कि पहली बार आपके द्वारा उपयोग किए जाने के लिए निहित विकल्प महत्वपूर्ण है।
7. स्विफ्ट में एक प्रकार क्या है?
एक प्रकार का उपनाम अन्यता कार्यक्रम में एक मौजूदा प्रकार के नामित उपनाम का परिचय देता है। टाइपअलियास कीवर्ड का उपयोग करके टाइप उर्फ घोषणाएं की जाती हैं।
typealias नाम = मौजूदा प्रकार
typealias StudentName = String let name:StudentName = "Jack"
आप उदाहरण के लिए, स्विफ्ट में अधिकांश प्रकारों के लिए टाइपेलियास का उपयोग कर सकते हैं:
- बिल्ट-इन प्रकार (जैसे, स्ट्रिंग, इंट)
- कस्टम प्रकार (जैसे कक्षाएं, संरचनाएं, गणना)
- जटिल प्रकार (जैसे बंद)
8. स्विफ्ट में कार्यों और विधियों के बीच अंतर क्या है?
एक विधि एक वर्ग, संरचना, या गणना से जुड़ा एक कार्य है। यह उदाहरण विधियों और प्रकार विधियों दोनों पर लागू होता है।
फ़ंक्शन - वैश्विक दायरे में घोषित किया गया है और यह किसी भी प्रकार से संबंधित नहीं है।
कार्यों को कक्षाओं के बाहर या कक्षाओं / संरचनाओं / गणना के अंदर परिभाषित किया जा सकता है, जबकि तरीकों को अंदर परिभाषित किया जाना चाहिए और कक्षाओं / संरचनाओं / गणना का हिस्सा होना चाहिए।
9. बाहरी मापदंडों का वाक्य विन्यास क्या है?
एक बाहरी पैरामीटर हमें उनके उद्देश्यों को अधिक समझने के लिए फ़ंक्शन मापदंडों को नाम देने की अनुमति देता है।
func power (आधार a: Int, घातांक b: Int) -> Int
* कभी-कभी फ़ंक्शन को पास करने वाले प्रत्येक तर्क के उद्देश्य को इंगित करने के लिए फ़ंक्शन को कॉल करते समय प्रत्येक पैरामीटर का नाम देना उपयोगी होता है।
यदि आप चाहते हैं कि आपके फ़ंक्शन के उपयोगकर्ता पैरामीटर को नाम देने के लिए प्रदान करें, तो इसे स्थानीय नाम के अलावा प्रत्येक पैरामीटर के लिए एक बाहरी पैरामीटर नाम परिभाषित करें। *
10. क्या स्विफ्ट में संरचनाओं और गणना को फिर से परिभाषित करना संभव है?
आप एक संरचना या गणना को उप-वर्ग नहीं कर सकते हैं, न ही आप उन्हें ओवरराइड कर सकते हैं। क्योंकि संरचना एक प्रकार का मूल्य है, और संकलनकर्ता को संकलन समय पर इसके सटीक आकार को जानने की आवश्यकता होती है, जो ओवरराइडिंग को असंभव बनाता है।
पिछले भागों को खोजने के लिए, लिंक भाग 1 , भाग 2 , सभी क्लोजर के बारे में , गुणों के बारे में सभी का पालन करें
वह सब है! हमें यकीन है कि अनुवाद न केवल iOS डेवलपर पाठ्यक्रम के छात्रों के लिए उपयोगी होगा, बल्कि कई Habr उपयोगकर्ताओं के लिए भी उपयोगी होगा। हम आपको व्यावसायिक सफलता की कामना करते हैं और हमारे कॉपीराइटेड ऑनलाइन कार्यक्रमों के अगले समूहों के लिए तत्पर हैं!