2015-11-30 6 views
5

के लिए एक चर का उपयोग करके आप तेजी से कैसे फेंकते हैं मैं एक चर के आधार पर एक प्रकार का प्रयास करने और डालने की कोशिश कर रहा हूं। नीचे दिए गए उदाहरण ", अघोषित प्रकार का प्रयोग करें 'MyType'" विफल रहता है कहटाइप

protocol Parent {} 
protocol Child: Parent {} 

struct Foo: Child {} 

let foo: Parent = Foo() 

let myType = Child.self 

if let _ = foo as? myType { 
    print("success") 
} 

वहाँ चर myType के आधार पर कास्ट करने के लिए कोई तरीका है?

उत्तर

1

प्रतिबिंबित होने पर, कास्टिंग यहां पूछने का सही सवाल नहीं है। यहां मैं सिर्फ अनुरूपता की जांच कर रहा हूं। डायनामिक कास्टिंग बेकार होगा क्योंकि स्थैतिक विश्लेषक के लिए कोई तरीका नहीं है कि यह पता चल जाए कि क्या यह एक चर प्रकार के आधार पर कास्टिंग कर रहा है।

संबंधित मुद्दे