क्यों मैं एक [AnyObject]
सरणी है और उस में विभिन्न प्रकार के आकार का एक समूह डाल सकते हैं ...पूर्णांक किसी भी ऑब्जेक्ट प्रोटोकॉल के अनुरूप क्यों नहीं होते?
var a = [AnyObject]()
a.append(Int(1))
a.append(Float64(3.14))
a.append(Bool(true))
... Int32
और Int64
....
a.append(Int32(1)) // err: type 'Int32' does not conform to protocol 'AnyObject'
a.append(Int64(1)) // err: type 'Int64' does not conform to protocol 'AnyObject'
प्रलेखन के अलावा AnyObject
कहते हैं के लिए:
0 "AnyObject किसी भी वर्ग प्रकार का एक उदाहरण का प्रतिनिधित्व कर सकते हैं"
लेकिन जब मैं इन प्रकार के मानक पुस्तकालय परिभाषा को देखने के लिए Int
, Int32
या Int64
पर आदेश-क्लिक करें, मुझे लगता है कि वे सब struct
मान रहे हैं।
अंतर्निहित मुद्दा क्या है? यह इस तरह क्यों डिजाइन किया गया है?
धन्यवाद यह एक है में एक संकर है उत्कृष्ट उत्तर क्या आपको पता है कि स्विफ्ट करता है कि किस तरह के निहित रूपांतरणों के बारे में कोई दस्तावेज है? मुझे लगता है कि यह सिर्फ 'एनएसआईएनटेगर' से परे है। –
यूप, यह [कोको और उद्देश्य-सी के साथ स्विफ्ट का उपयोग करके] में शामिल है (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/WorkingWithCocoaDataTypes.html#//apple_ref/doc/ यूआईडी/टीपी 40014216-सीएच 6-एक्सआईडी_42) आईबुक। लेकिन बस ध्यान रखें कि यह एक्सकोड 6.3 बीटा में बदल गया है और पुस्तक केवल रिलीज़ संस्करण व्यवहार को प्रतिबिंबित करती है, इसलिए जब आप अपग्रेड करने का प्रयास करते हैं तो एक्सकोड रिलीज नोट्स को जांचना सबसे अच्छा होता है। –
बीटीडब्ल्यू आप एनएसएनंबर का मतलब है और एनएसआईएनटेगर नहीं मानते हैं? –