2015-03-29 15 views
5

में काम नहीं करती है, समस्या यह है कि अगर मैं प्रोटोकॉल टाइप करता हूं तो क्लास विधियों का आह्वान नहीं कर सकता। टाइप। क्या कोई वैकल्पिक पैटर्न है जो इसे प्राप्त कर सकता है। [SomeProtocol.Type] और मैं देना तार निष्पादित करना चाहते हैं: [स्ट्रिंग] = arr.map {$ 0.str}प्रोटोकॉल प्रकार के सदस्यों तक पहुंच स्विफ्ट

protocol SomeProtocol: class { 
    static var str: String { get } 

    static func value() -> Int 
} 

class SomeClass: SomeProtocol { 
    static var str: String = "SomeClass" 

    static func value() -> Int { 
     return 1 
    } 
} 

let protocolType: SomeProtocol.Type = SomeClass.self 
println(protocolType.str) // compile error 
println(protocolType.value()) // compile error 
+0

संबंधित: [प्रोटोकॉल के अनुरूप कक्षाओं की सरणी घोषित करें] (http://stackoverflow.com/a/28691376/3804019) – rintaro

उत्तर

2

enter image description here

रियल परिदृश्य मैं आगमन है कि है जैसा कि आप तेजी से इस हिस्से को देख सकते हैं अनुपूरक है। (एक्सकोड 6.3 बीटा 4)

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