访问协议类型的成员在Swift中不起作用

时间:2015-03-29 09:11:06

标签: ios swift protocols

以下是问题,如果类型是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

1 个答案:

答案 0 :(得分:2)

enter image description here

正如你所看到的那样,swift的这部分未实现。 (Xcode 6.3 beta 4)