【发布时间】:2017-01-08 00:03:15
【问题描述】:
我想用 Swift 编写以下代码:
class A
{
class let x = 0
func print_class_property()
{
print(type(of: self).x)
}
}
class B:A
{
overriding class let x = 1
}
class C:A
{
overriding class let x = 5
}
A().print_class_property() // 0
B().print_class_property() // 1
C().print_class_property() // 5
当然,这不会编译。
相反,我可以将类属性降级为在子类初始化程序中被覆盖的变量实例属性,但是这为A、@ 的每个 实例中的x 分配存储空间987654324@ 或 C。 此外,您无法保证 x 在对象的整个生命周期内永远不会更改。
如何在类级别存储可以由子类的所有实例共享的常量?
【问题讨论】:
标签: swift subclass class-variables