您不能直接以静态方法访问非静态内容。
该方法
letKnowPersonDeinitialized是静态的,因为已使用
static修饰符对其进行了修改:
static func letKnowPersonDeinitialized() { ^ |here!}的
name属性
Person不是静态的,因为它没有被修改
static。
由于非静态成员属于该类的每个单独实例,而静态成员属于该类本身,因此静态成员无法直接访问非静态成员。存在实例时,它们只能访问非静态成员。
要解决您的问题,请在
letKnowPersonDeinitialized方法中添加一个参数:
static func letKnowPersonDeinitialized(person: Person) { print(person.name)}并在反初始化器中:
deinit { Indicator.letKnowPersonDeinitialized(self)}非常重要的东西:
我认为您的代码设计得不好。这不是您使用继承的方式。
继承意味着“是一种”。因此,如果
Indicator继承自
Person,则意味着指标是一种人。
根据常识,指标不是人。因此,此处不适合使用继承。这没有什么意义。



