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