以下是问题,如果类型是protocol.type,我无法调用类方法。是否有可以实现这一目标的替代模式。
真实情况是我有arr:[SomeProtocol.Type]并且我想要执行 let strings:[String] = 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 :(得分:2)
正如你所看到的那样,swift的这部分未实现。 (Xcode 6.3 beta 4)