在Swift 3中,要访问super.init之前的动态类型,可以使用Swift的类型转换和类型检查机制。具体步骤如下:
type(of:)
函数来获取当前实例的动态类型。class SubClass: SuperClass {
override init() {
let dynamicType = type(of: self)
// 在这里可以访问super.init之前的动态类型
super.init()
}
}
type(of:)
函数获取当前实例的动态类型,并将其赋值给一个变量或常量。这样就可以在super.init()
之前访问该动态类型。class SubClass: SuperClass {
override init() {
let dynamicType = type(of: self)
// 在这里可以访问super.init之前的动态类型
super.init()
}
}
class SubClass: SuperClass {
override init() {
let dynamicType = type(of: self)
// 在这里可以访问super.init之前的动态类型
print("动态类型为:\(dynamicType)")
super.init()
}
}
需要注意的是,type(of:)
函数返回的是一个元类型(metatype),可以使用.self
来获取该元类型的实例。例如,let dynamicType = type(of: self).self
。
这样,在Swift 3中就可以在访问super.init()
之前获取到动态类型了。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云