无法转换为init的协议一致性

时间:2018-04-13 08:47:27

标签: swift syntax

在函数内部转换泛型,以符合具有init函数的SomeProtocol。这是不可能的?

public func doSomething<Entity>(foo: Entity) throws -> Entity {

  let aValue = someVariableSomewhere.performFunction()

  // stuff happens

  _ = (Entity.self as! SomeProtocol)(record: aValue) //fails

  // stuff happens

  // returns something
}

'SomeProtocol'具有函数

init(record: String)

1 个答案:

答案 0 :(得分:0)

您可以转换为协议进行初始化,如下所示,

let object = type(of: foo as! SomeProtocol).init(record: "stringValue")