【发布时间】:2014-11-21 18:19:52
【问题描述】:
class Gen<T: A> {
func create() -> T {
if T.self is B.Type {
println("YES")
}
return T(id: "cool")
}
}
class A {
let id: String
init(id: String) {
self.id = id
println("class A \(id)")
}
}
class B: A {
override init(id: String) {
println("class B \(id)")
super.init(id: id)
}
}
let coll = Gen<B>()
let t = coll.create()
输出是 “是的” “A级酷”
被覆盖的 B.init 没有输出。
这是编译器错误吗?我需要采取不同的做法吗?
Xcode 6.1
【问题讨论】:
-
查看我对这个问题的回答:stackoverflow.com/questions/26280176/…
标签: swift