在函数内部转换泛型,以符合具有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)
答案 0 :(得分:0)
您可以转换为协议进行初始化,如下所示,
let object = type(of: foo as! SomeProtocol).init(record: "stringValue")