为什么我不能在下面的代码中从类型B分配和读取值? B.self
应该作为类型而不是实例传递,因此它应该在class B
中访问静态var吗?
class A{
}
class B:A{
static var a = 5
}
class c{
static func a(){
b(type: B.self)
}
static func b(type:B.Type){
print(type.a)
}
func takeObject<T>(type:T.Type){
print(type(of:String.self)) // String.Type
print(type) // B
print(type.a) // Value of type 'T' has no member 'a'
var a :type // Use of undeclared type 'type'
}
}
let objects : c = c()
objects.takeObject(object: B.self)
请纠正我,我是这个主题的新手,似乎很有趣。
答案 0 :(得分:0)
我认为您只想添加类型B
的对象,因此可以如下指定类型T
的通用B
,
class A {}
class B: A {
static var a = 5
}
class c {
static func a() {
b(type: B.self)
}
static func b(type: B.Type){
print(type.a)
}
func takeObject<T: B>(type: T.Type){
print(type)
print(type.a)
var a : T
}
}
let objects : c = c()
objects.takeObject(type: B.self)