【发布时间】:2017-11-03 19:44:43
【问题描述】:
我在这里敲我的头......我想做这样的事情......
func serialize(into object: Any) -> [Object]{
var temp = [Object]()
if object is Project{
temp = [Project]()
for (_,j): (String,JSON) in self {
temp.append(Project(json: j))
}
}
if object is Evaluation{
temp = [Evaluation]()
for (_,j): (String,JSON) in self {
temp.append(Evaluation(json: j))
}
}
return temp
}
编译时,它不返回任何值。没有一个if object is ... 得到满足。我尝试过我理解为泛型的变体?但我并不完全理解它们。
func serialize<T>(into object: T.Type) -> (T){ }
我希望能够将此扩展用于init 调用它并返回的特定类。我尝试使用的所有类都由领域Object 类继承。我目前正在这样调用这个函数(显然是一个扩展)
let projects = json["projectList"].serialize(into: Project.self) as! [Project]
【问题讨论】:
-
@matt 它不像“它根本不起作用”那样起作用。我认为我正在尝试做的事情很明显......我会编辑。
-
@matt 编辑反映。
-
@matt 是的,是的。
标签: swift class type-inference