Swift में iPhone मॉडल कैसे पहचानें: शुरुआती गाइड

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

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

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

Swift में iPhone मॉडल कैसे पहचानें: शुरुआती लोगों के लिए गाइड

\n\n

क्या आपने कभी सोचा है कि आपका Swift ऐप iPhone 13 पर तो बिल्कुल सही चलता है, लेकिन iPhone SE (दूसरी पीढ़ी) पर उसका लेआउट बिगड़ा हुआ दिखता है? या फिर आपके द्वारा जोड़ी गई कुछ सुविधाएं पुराने मॉडलों पर काम क्यों नहीं करतीं? इसका जवाब सीधा है: अलग-अलग iPhone में अलग-अलग क्षमताएं होती हैं — स्क्रीन साइज से लेकर Face ID और हैप्टिक फीडबैक तक।

\n\n

इस लेख में हम सीखेंगे कि Swift में iPhone मॉडल कैसे पहचानें — UIDevice के आसान तरीके से लेकर sysctlbyname के प्रोफेशनल तरीके तक। आप सिर्फ "iPhone" नहीं, बल्कि यह भी जान पाएंगे कि सामने iPhone 14 Pro Max है या iPhone 8। चलिए शुरू करते हैं!

\n\n

यह क्यों ज़रूरी है?

\n

हर iOS डेवलपर को कभी न कभी किसी खास डिवाइस के हिसाब से इंटरफ़ेस या लॉजिक को एडजस्ट करना पड़ता है। यहाँ कुछ असली उदाहरण हैं:

\n
    \n
  • एडेप्टिव डिज़ाइन: "नॉच" वाले iPhone (iPhone X और उससे नए) पर एलिमेंट्स को पुराने Home बटन वाले मॉडलों से अलग रखना होता है।
  • \n
  • परफॉर्मेंस ऑप्टिमाइज़ेशन: पुराने डिवाइसों (iPhone 6s, iPhone 7) पर भारी एनिमेशन या इफेक्ट्स बंद करने चाहिए।
  • \n
  • फीचर लिमिटेशन: सभी मॉडल ARKit, LiDAR, 120Hz डिस्प्ले या MagSafe को सपोर्ट नहीं करते।
  • \n
  • एनालिटिक्स: यह जानना कि आपके यूज़र कौन से मॉडल इस्तेमाल कर रहे हैं, प्रोडक्ट डिसीजन लेने में मदद करता है।
  • \n
\n\n

लेवल 1: UIDevice (आसान, लेकिन सीमित)

\n

सबसे आसान तरीका है बिल्ट-इन क्लास UIDevice का उपयोग करना। यह डिवाइस की सामान्य जानकारी देता है, लेकिन सटीक मॉडल नहीं बताता।

\n\n
import UIKit\n\nlet device = UIDevice.current\nprint("डिवाइस का नाम: \\(device.name)")\nprint("मॉडल: \\(device.model)")           // "iPhone" या "iPad"\nprint("सिस्टम: \\(device.systemName)")     // "iOS"\nprint("वर्जन: \\(device.systemVersion)")   // "17.0"\n
\n\n

आपको क्या मिलेगा: device.model सिर्फ "iPhone" या "iPad" लौटाएगा। यह जानने के लिए उपयोगी है कि यह मोबाइल डिवाइस है या नहीं, लेकिन सटीक पहचान के लिए नहीं।

\n\n

कब उपयोग करें: जब आपको सिर्फ यह चेक करना हो कि ऐप iPhone पर चल रहा है, iPad या iPod touch पर नहीं। जैसे, iPad-स्पेसिफिक फीचर्स को छिपाने के लिए।

\n\n

लेवल 2: sysctlbyname (प्रोफेशनल तरीका)

\n

iPhone का सटीक मॉडल पाने के लिए, आपको सिस्टम कॉल sysctlbyname का उपयोग करना होगा। यह "iPhone14,2" जैसी स्ट्रिंग लौटाता है (यह iPhone 13 Pro है)। इन आइडेंटिफायर्स को जानकर, आप उन्हें मानव-पठनीय नामों से मैप कर सकते हैं।

\n\n

यहाँ Swift में काम करने वाला कोड है:

\n\n
import UIKit\n\nfunc getDeviceModelCode() -> String {\n    var size = 0\n    sysctlbyname("hw.machine", nil, &size, nil, 0)\n    var machine = [CChar](repeating: 0, count: size)\n    sysctlbyname("hw.machine", &machine, &size, nil, 0)\n    return String(cString: machine)\n}\n\n// उपयोग\nlet modelCode = getDeviceModelCode()\nprint("मॉडल कोड: \\(modelCode)") // उदाहरण: "iPhone14,2"\n
\n\n

अब आपके पास "iPhone14,2" है। लेकिन यह कौन सा मॉडल है? इसके लिए आपको एक मैपिंग डिक्शनरी की ज़रूरत होगी।

\n\n

iPhone मॉडलों की डिक्शनरी (2024 तक अपडेटेड)

\n

नीचे एक आंशिक लेकिन अधिकतर कामों के लिए पर्याप्त लिस्ट दी गई है। पूरी लिस्ट ओपन सोर्स में मिल सकती है या आप इसे एक अलग फाइल में रख सकते हैं।

\n\n
func getDeviceModelName() -> String {\n    let modelCode = getDeviceModelCode()\n    \n    let modelMap: [String: String] = [\n        // iPhone 15 सीरीज\n        "iPhone15,4": "iPhone 15",\n        "iPhone15,5": "iPhone 15 Plus",\n        "iPhone16,1": "iPhone 15 Pro",\n        "iPhone16,2": "iPhone 15 Pro Max",\n        \n        // iPhone 14 सीरीज\n        "iPhone14,7": "iPhone 14",\n                

ब्लॉग

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