【发布时间】:2018-08-10 09:10:51
【问题描述】:
我想创建一个函数,它接受所需的返回类型作为参数,并且应该符合我的自定义协议。
下面是我在操场上的代码。
protocol InitFunctionsAvailable {
func custom(with: Array<Int>)
}
class model1: InitFunctionsAvailable {
var array: Array<Int>!
func custom(with: Array<Int>) {
array = with
}
}
func call<T: InitFunctionsAvailable>(someObject: T) -> T {
return someObject.custom(with: []) as! T
}
let model = call(someObject: model1())
print(model.array)
我遇到错误
无法将 '()' (0x1167e36b0) 类型的值转换为 '__lldb_expr_76.model1' (0x116262430)。
我需要的是函数应该根据参数返回模型。
【问题讨论】:
-
custom(with:)返回Void(又名())。 -
@Cristik 我应该在我的代码中更改什么
-
不确定。取决于你想完成什么。
-
不清楚您要完成什么;您是否尝试使用
initFunctionsAvailable来实现某种工厂模式?custom在您的示例中应该返回什么?model1的实例? -
是 model1 的一个实例。它应该根据我的传入参数而有所不同