परिचय: क्यों आपका कोड मदद के लिए चिल्ला रहा है (और कैसे MARK: इसे शांत करता है)
\n\nकल्पना करें: आप 500 लाइनों वाली Swift फ़ाइल खोलते हैं। आँखें स्क्रीन पर दौड़ती हैं, आप tableView(_:cellForRowAt:) मेथड ढूंढ रहे हैं, लेकिन func और var के समंदर में डूब जाते हैं। परिचित लगता है? 2025 में, जब प्रोजेक्ट और जटिल होते जा रहे हैं और डेवलपमेंट की स्पीड महत्वपूर्ण है, ऐसी स्थिति बग्स और समय बर्बादी का सीधा रास्ता है।
Stack Overflow पर सवाल "#pragma mark in Swift?" ने हज़ारों व्यूज़ बटोरे हैं। और यह कोई संयोग नहीं है। Objective-C से आए डेवलपर्स एक परिचित टूल ढूंढ रहे थे, और नए लोग कोड में व्यवस्था लाने का तरीका। इसका जवाब सरल और सुरुचिपूर्ण है: Swift में #pragma mark नहीं है, लेकिन इसका एक अधिक शक्तिशाली विकल्प है — // MARK:।
इस लेख में हम सिर्फ यह नहीं बताएंगे कि Swift में // MARK: का उपयोग कैसे करें। हम 2025 की सर्वश्रेष्ठ प्रैक्टिस दिखाएंगे जो आपके कोड को कला का नमूना बना देंगी, जो एक साल बाद भी आपको और आपके सहकर्मियों को समझ में आएगा। Xcode तैयार रखें — यह दिलचस्प होने वाला है।
\n\nSwift में // MARK: क्या है और इसकी आवश्यकता क्यों है?
\n\nअगर आपने कभी Objective-C में काम किया है, तो आपको #pragma mark याद होगा। यह एक प्रीप्रोसेसर डायरेक्टिव था जो Xcode के नेविगेशन पैनल में मेथड्स को ग्रुप करने में मदद करता था। Swift में इसे हटा दिया गया, लेकिन विशेष कमेंट्स के ज़रिए इसकी कार्यक्षमता बरकरार रखी गई।
// MARK: एक ऐसा कमेंट है जिसे Xcode सेक्शन डिवाइडर के रूप में इंटरप्रेट करता है। यह नेविगेशन बार (Jump Bar) में एक बोल्ड हेडिंग और एक डिवाइडिंग लाइन जोड़ता है। यह कुछ इस तरह दिखता है:
\n\n// MARK: - Lifecycle\n\noverride func viewDidLoad() {\n super.viewDidLoad()\n}\n\n// MARK: - Table View Data Source\n\nfunc tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {\n return items.count\n}\n\n\nMARK: के बाद डैश (// MARK: -) पर ध्यान दें। यह एक क्षैतिज विभाजक रेखा जोड़ता है। डैश के बिना सिर्फ बोल्ड टेक्स्ट होगा। दोनों विकल्पों का उपयोग करें, यह इस बात पर निर्भर करता है कि आप ब्लॉक्स को कितना अलग दिखाना चाहते हैं।
SEO के लिए मुख्य शब्द: Swift में // MARK: का उपयोग, Swift कोड ऑर्गनाइज़ेशन, Xcode नेविगेशन।
\n\n2025 में // MARK: के उपयोग की सर्वश्रेष्ठ प्रैक्टिस
\n\nहर जगह सिर्फ // MARK: लगा देना एक बुरा विचार है। इससे शोर पैदा होगा। यहाँ कुछ सिद्ध तकनीकें दी गई हैं जिनका उपयोग टॉप iOS डेवलपर्स करते हैं।
1. प्रोटोकॉल और जिम्मेदारियों के अनुसार ग्रुप करें
\n\nसबसे आम परिदृश्य एक ही क्लास में कई प्रोटोकॉल को लागू करना है। अपने सहकर्मियों को यह अनुमान लगाने के लिए मजबूर न करें कि UITableViewDelegate कहाँ खत्म होता है और UITableViewDataSource कहाँ शुरू होता है।
final class ProfileViewController: UIViewController {\n\n // MARK: - Properties\n\n private let viewModel: ProfileViewModel\n private let tableView = UITableView()\n\n // MARK: - Lifecycle\n\n override func viewDidLoad() {\n super.viewDidLoad()\n setupUI()\n }\n\n // MARK: - UITableViewDataSource\n\n override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {\n return viewModel.sections.count\n }\n\n override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {\n // ...\n }\n\n // MARK: - UITableViewDelegate\n\n func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {\n viewModel.didSelectRow(at: indexPath)\n }\n\n // MARK: - Private Methods\n\n private func setupUI() {\n // ...\n }\n}\n\n\nयह सुनहरा मानक है। प्रत्येक ब्लॉक एक तार्किक इकाई के लिए जिम्मेदार है।
\n\n2. क्लास के अंदर तार्किक सेक्शन के लिए // MARK: - का उपयोग करें
\n\nभले ही आप प्रोटोकॉल लागू नहीं कर रहे हों, लंबी क्लासेस को सेक्शन में विभाजित करें: Public Methods, Private Methods, Helpers, Actions।