मैं स्विफ्ट सीख रहा हूं, और मैं इसमें Dictionary
देख सकता हूं।
लेकिन स्विफ्ट के साथ NSDictionary
का उपयोग कर रहे कई उदाहरण हैं।
इन दोनों के बीच क्या अंतर है?
मैं PHP में एक सरणी की तरह स्विफ्ट में इंडेक्स के साथ एक सरणी का उपयोग करना चाहता हूं।
कौन सा उपयोग करने के लिए बेहतर है?स्विफ्ट में NSDictionary बनाम शब्दकोश के बीच क्या अंतर है?
उत्तर
शब्दकोश एक देशी स्विफ्ट संरचना है। NSDictionary एक कोको वर्ग है। वे एक दूसरे (सामान्य सीमाओं के भीतर) के लिए बंधे होते हैं, क्योंकि दस्तावेज़ बहुत स्पष्ट और पूरी तरह से समझाते हैं।
यह बिल्कुल ऐरे और एनएसएआरएआरई के समानांतर है।
यहाँ सौदा,
सभी इरादों और उद्देश्यों के लिए है, वे एक ही बात कर रहे हैं। जब तक आप Foundation
आयात करते हैं, तब तक संकलक उन्हें एक ही चीज़ के रूप में जानता होगा।
विशिष्ट मतभेदों के लिए, thus Apple doc मदद करता है।
अवलोकन
NSObject
सबसे ऑब्जेक्टिव-सी वर्ग पदानुक्रम की जड़ वर्ग है। NSObject
के माध्यम से, ऑब्जेक्ट्स रनटाइम सिस्टम के लिए एक बुनियादी इंटरफ़ेस और उद्देश्य-सी ऑब्जेक्ट्स के रूप में व्यवहार करने की क्षमता प्राप्त करता है।
इसका अर्थ यह है कि संक्षेप में, NSObjects
पुरानी (उद्देश्य सी) के समय से प्राचीन अवशेष हैं।
बेहतर क्या है, यह आपके ऊपर है। मुझे कोड को आधुनिक रखने के उद्देश्य से एनएस समकक्ष से बेहतर तेज़ी से ऑब्जेक्ट्स मिलते हैं, हालांकि यदि आप NSURLCONNECTION
जैसे कोड का उपयोग कर रहे हैं, तो आपको एनएस ऑब्जेक्ट्स की आवश्यकता होती है, तो आपको एनएस ऑब्जेक्ट्स का उपयोग करना पड़ सकता है।
उम्मीद है कि इससे मदद मिलती है।
हालांकि वे हैं? स्विफ्ट शब्दकोश मूल्य से गुजरते हैं, जबकि एनएसडीयूजी संदर्भ द्वारा पास होते हैं। –
व्यवहार में और स्विफ्ट की मजबूत प्रकार अवधारणा के संबंध में महत्वपूर्ण अंतर
NSDictionary
आम तौर पर टाइप है अनिर्दिष्टDictionary
एक विशिष्ट प्रकार के लिए आते है।
इसलिए मूल Dictionary
बेहतर है।
let dataArray = NSMutableArray()
let d0 = ["code":"AA","name":"American Airlines"]
let d1 = ["code":"BA","name":"British Airlines"]
let d2 = ["code":"DA","name":"Delta Airlines"]
dataArray.addObject(d0)
dataArray.addObject(d1)
dataArray.addObject(d2)
बाद में इस उदाहरण पर विचार ...
let d0 = dataArray.objectAtIndex(0) as! [String:String]
let lbl = UILabel()
lbl.text = d0["code"] // no xcode warnings
तेज
let d0 = dataArray.objectAtIndex(0) as! NSDictionary
में NSDictionary का उपयोग करते हुए अब आप आकार में मूल्य शब्दकोश मजबूर करने की जरूरत है।
lbl1.text = d0["name"] as! String
अनुभव से
- जब json प्रतिक्रियाओं के साथ काम - मैं NSDictionary का उपयोग किया है के रूप में यह शिथिल टाइप किया है और मुझे पता है कि यह वास्तव में क्या होता है इसकी गारंटी नहीं कर सकते हैं - सिर्फ इतना है कि वैध json है। इस उपयोग के मामले को संभालने के लिए देशी स्विफ्ट टूल्स की बढ़ती लाइब्रेरी है, मेरा सुझाव है कि यहां https://github.com/search?q=json+NSDictionary+swift&type=Code&utf8=%E2%9C%93
इस मामले में - आपको 'if let' नृत्य के साथ डेटा के आसपास हैक करना होगा।
if let results = json["result"] as? NSDictionary
अंत में - NSMutableDictionary अधिक शब्दकोश के साथ बराबर के रूप में आप एक NSDictionary पर कुंजी/मान जोड़े उत्परिवर्तित करने में सक्षम नहीं होगा।
उदाहरण के लिए।
results["code"] = 100 // <-- BOOM
आसपास काम -
let mResults = NSMutableDictionary(dictionary:results)
mResults["code"] = NSNumber(100) // <-- OK
जो स्पष्टीकरण भीख माँगता - आप केवल NSObjects (NSNumbers/NSArrays/NSCount/NSSet) NSMutableDictionaries अंदर छड़ी कर सकते हैं। स्विफ्ट शब्दकोश इस के आसपास हो जाता है।
- 1. () बनाम [] बनाम {} के बीच क्या अंतर है?
- 2. स्विफ्ट - NSDictionary
- 3. एनएसएनंबर बनाम इंट, स्विफ्ट शब्दकोश में फ्लोट
- 4. "?" के बीच क्या अंतर है तथा "!" स्विफ्ट में?
- 5. स्विफ्ट के बराबर `[NSDictionary initWithObjects: forKeys:]`
- 6. शब्दकोश और सरणी के बीच क्या अंतर है?
- 7. एसजेएलजे बनाम बौने बनाम सेह के बीच क्या अंतर है?
- 8. शब्दकोश ऑपरेशन में जोड़ें और [] के बीच क्या अंतर
- 9. स्विफ्ट में सुविधा init बनाम init के बीच क्या अंतर है, स्पष्ट उदाहरण बेहतर
- 10. NSDictionary
- 11. टाइपस्क्रिप्ट में * .d.ts बनाम * .ts के बीच क्या अंतर है?
- 12. स्विफ्ट शब्दकोश भ्रम
- 13. शैली में एक अंतर: IDictionary बनाम शब्दकोश
- 14. शब्दकोश का अंतर। जोड़ें बनाम शब्दकोश [कुंजी] = मूल्य
- 15. मेमकेचे और पायथन शब्दकोश के बीच अंतर
- 16. स्विफ्ट में फेंकने और पुनर्विचार के बीच अंतर क्या हैं?
- 17. स्विफ्ट में कार्यों और विधियों के बीच अंतर क्या हैं?
- 18. स्विफ्ट शब्दकोश मान
- 19. स्विफ्ट: flatMap शब्दकोश में
- 20. सी ++ बनाम सी ++ के बीच मुख्य अंतर क्या है? नेट?
- 21. स्तरीय बनाम परत अनुप्रयोग के बीच क्या अंतर है?
- 22. विजेट पोस्ट() बनाम हैंडलर पोस्ट() के बीच क्या अंतर है?
- 23. AppBarLayout बनाम टूलबार के बीच क्या अंतर है?
- 24. process.cwd() बनाम __dirname के बीच क्या अंतर है?
- 25. लॉगकैट बनाम dmesg के बीच क्या अंतर है?
- 26. IWindsorContainer बनाम IUnityContainer के बीच क्या अंतर है?
- 27. पहचान प्रदाता बनाम संघ प्रदाता के बीच क्या अंतर है?
- 28. फ्रीजीएलयूटी बनाम जीएलएफडब्ल्यू के बीच क्या अंतर है?
- 29. अपाचे स्पार्क SQLContext बनाम HiveContext के बीच क्या अंतर है?
- 30. "गिट रीसेट" बनाम "गिट रीबेस" के बीच क्या अंतर है?
तो शब्दकोश + NSDictionary समान है? लेकिन मुझे लगता है कि इसे घोषित करने के दो तरीके हैं। तो मैं उलझन में हूँ। – TomSawyer
वे "वही" हैं जो रनटाइम दोनों के बीच परिवर्तित हो जाएंगे। – CodaFi
दरअसल, 'शब्दकोश' एक संरचना है, कक्षा नहीं। – newacct