Swift साक्षात्कार कैसे पास करें: शीर्ष प्रश्न और उत्तर

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय

iOS/macOS डेवलपर पद के लिए साक्षात्कार केवल UIKit या SwiftUI फ्रेमवर्क के ज्ञान की जांच नहीं है। सबसे पहले, नियोक्ता Swift भाषा की आपकी समझ का मूल्यांकन करता है: इसका सिंटैक्स, मेमोरी प्रबंधन की विशेषताएं, मल्टीथ्रेडिंग के साथ काम करना और टाइप सिस्टम। भले ही आप आत्मविश्वास से एप्लिकेशन लिखते हों, सैद्धांतिक आधार के बिना तकनीकी साक्षात्कार में असफल होना आसान है।

इस लेख में, हमने शीर्ष प्रश्न एकत्र किए हैं जो 2025 में Swift साक्षात्कार में सबसे अधिक बार पूछे जाते हैं। प्रत्येक प्रश्न के साथ विस्तृत विवरण और कोड उदाहरण दिया गया है। यह सामग्री जूनियर्स और अनुभवी डेवलपर्स दोनों के लिए उपयोगी होगी जो अपने ज्ञान को ताज़ा करना चाहते हैं।



1. वैकल्पिक प्रकार (Optionals) और सुरक्षा

Swift Optionals का उपयोग क्यों करता है?

Swift एक सख्त टाइपिंग वाली भाषा है, और वैकल्पिक प्रकार nil के साथ सुरक्षित रूप से काम करने के लिए इसकी मुख्य विशेषता है। Objective-C के विपरीत, जहाँ nil केवल एक शून्य पॉइंटर है, Swift में Optional दो मामलों वाला एक एनुम (enum) है: none (nil) और some(Wrapped)। यह डेवलपर को मान की अनुपस्थिति को स्पष्ट रूप से संभालने के लिए मजबूर करता है, जिससे क्रैश को रोका जा सकता है।



Optional से मान कैसे निकालें?

कई तरीके हैं:

  • Force unwrapping — ऑपरेटर !। केवल तब उपयोग करें जब आपको पूरा यकीन हो कि मान nil नहीं है।
  • Optional binding — if let या guard let संरचना।
  • Nil-coalescing operator — डिफ़ॉल्ट मान सेट करने के लिए ??।


var name: String? = "Alice"

// Force unwrapping (खतरनाक!)print(name!)

// Optional bindingif let unwrappedName = name { print("Hello, \\(unwrappedName)")}

// Nil-coalescinglet displayName = name ?? "Guest"print(displayName)


Implicitly Unwrapped Optionals (IUO) क्या है?

यह एक वैकल्पिक प्रकार है जो एक्सेस करने पर स्वचालित रूप से निकाला जाता है। इसे प्रकार के बाद ! के साथ घोषित किया जाता है। इसका उपयोग मुख्य रूप से उन गुणों के लिए किया जाता है जो init के बाद आरंभ होते हैं (जैसे UIKit में IBOutlet)। हालाँकि, आधुनिक Swift (5.x) में IUO सामान्य Optionals की तरह व्यवहार करते हैं, और कंपाइलर जोखिमों के बारे में चेतावनी देता है।



2. मेमोरी प्रबंधन: ARC और मजबूत संदर्भ चक्र

Swift में ARC कैसे काम करता है?

Automatic Reference Counting (ARC) एक संदर्भ गणना तंत्र है। क्लास के प्रत्येक इंस्टेंस में एक संदर्भ काउंटर होता है। जब काउंटर शून्य हो जाता है, तो ऑब्जेक्ट मेमोरी से हटा दिया जाता है। ARC केवल reference types (क्लास, क्लोजर) के साथ काम करता है। Value types (स्ट्रक्चर, एनुम) स्टैक में संग्रहीत होते हैं और कॉपी करके प्रबंधित किए जाते हैं।



मजबूत संदर्भ चक्र (retain cycle) क्या है?

चक्र तब उत्पन्न होता है जब दो ऑब्जेक्ट मजबूत संदर्भों के माध्यम से एक-दूसरे को संदर्भित करते हैं, और ARC उन्हें मुक्त नहीं कर सकता। इससे मेमोरी लीक होती है। समाधान कमजोर (weak) या बेस्वाद (unowned) संदर्भों का उपयोग करना है।



class Person {    let name: String    var apartment: Apartment?    init(name: String) { self.name = name }    deinit { print("\\(name) deallocated") }}

class Apartment { let unit: String weak var tenant: Person? // weak — चक्र को रोकता है init(unit: String) { self.unit = unit } deinit { print("Apartment \\(unit) deallocated") }}

var john: Person? = Person(name: "John")var unit4A: Apartment? = Apartment(unit: "4A")

john?.apartment = unit4Aunit4A?.tenant = john

john = nilunit4A = nil// दोनों ऑब्जेक्ट मुक्त हो जाएंगे


weak का उपयोग कब करें, और unowned का कब?

  • weak — हमेशा optional, ऑब्जेक्ट मुक्त होने पर स्वचालित रूप से nil हो जाता है। इसका उपयोग तब किया जाता है जब संदर्भ का जीवनकाल मालिक से छोटा हो सकता है।
  • unowned — non-optional, यह मानता है कि ऑब्जेक्ट उतने ही समय या अधिक समय तक जीवित रहेगा। खतरनाक: यदि ऑब्जेक्ट मुक्त हो जाता है, तो एक्सेस

ब्लॉग

पुस्तक अनुशंसाएँ