स्विफ्ट 3 पर निम्न कोड क्रैश हो गया है, क्या कोई भी कृपया बता सकता है क्यों?स्ट्रक्चर की सरणी 3 सरणी -> NSObject पर डाली गई -> वापस कास्ट => क्रैश
struct S {
let a:Int
}
let t = [S(a: 8)]
let u:AnyObject = t as NSObject
let v:[S] = u as! [S]
कि क्योंकि स्विफ्ट में structs के 3 सरणी NSObject है (यह स्विफ्ट 2 में नहीं है) और यह किसी भी तरह अच्छी तरह से NSArray को नहीं बदला जा सकता है? और यह क्यों है NSObject ..
क्या आपको \ NObject = t NSObject के रूप में भी आपके लिए संकलित करता है ...? तेजी से Arrays मूल्य प्रकार हैं और स्वाभाविक रूप से कंक्रीट वर्ग प्रकार 'NSObject' से प्राप्त नहीं है। स्विफ्ट में स्विफ्ट देशी प्रकारों और ओब्जे-सी प्रकारों के बीच निहित ब्रिजिंग थोड़ा उलझन में रूपांतरण की अनुमति दे सकती है, लेकिन स्विफ्ट 3 में अंतर्निहित ब्रिजिंग सुविधाओं को हटा दिया गया है। – dfri
यह अजीब है, क्योंकि चलो वी = यू के रूप में? [एस] 'काम करता है। – JAL
@dfri - हाँ, यह संकलित करता है, यह स्विफ्ट 3 में एक बग हो सकता है .. – silyevsk