स्विफ्ट 3 दस्तावेज के अनुसार, एनएसएनंबर स्विफ्ट देशी प्रकार जैसे इंट, फ्लोट, डबल, ... के लिए ब्रिज किया गया है, लेकिन जब मैं शब्दकोश में मूल प्रकार का उपयोग करने का प्रयास करता हूं तो मुझे संकलन त्रुटियां मिलती हैं NSNumber का उपयोग करने पर तय हो जाओ, वह क्यों है? यहाँ मेरी कोड है:एनएसएनंबर बनाम इंट, स्विफ्ट शब्दकोश में फ्लोट
var dictionary:[String : AnyObject] = [:]
dictionary["key"] = Float(1000)
और संकलक त्रुटि देता है "AnyObject के प्रकार फ्लोट के मान निर्दिष्ट नहीं किया जा सकता"। यदि मैं कोड को निम्नानुसार लिखता हूं, तो कोई समस्या नहीं है क्योंकि NSNumber वास्तव में एक ऑब्जेक्ट प्रकार है।
dictionary["key"] = NSNumber(value:Float(1000))
स्विफ्ट संकलक भी
dictionary["key"] = Float(1000) as AnyObject
के रूप में कोड को दूर करने के संकेत देता है, लेकिन मुझे यकीन है कि अगर यह कर सकते हैं या नहीं करने के लिए सही बात है नहीं कर रहा हूँ। यदि वास्तव में एनएसएनंबर और देशी प्रकारों (इंट, फ्लोट, इत्यादि) के बीच एक ब्रिजिंग है, तो संकलक किसी भी ऑब्जेक्ट को टाइपकास्ट करने के लिए मजबूर क्यों कर रहा है?
संबंधित: http://stackoverflow.com/questions/39321421/working-with-nsnumber-integer-values-in-swift- 3 –