【发布时间】:2014-08-01 21:03:30
【问题描述】:
我的特定班级的所有后代都有一个UILabel 实例变量。所以在我的父类中,我有var label: UILabel。我也想把它放在子类中,但是作为IBOutlet。我该怎么做?
我添加了同名的IBOutlet,并在两个变量声明中添加了weak。但是我收到一个关于“不能用存储的属性覆盖”的错误。
我应该怎么做?是否可以不必实例化超类的版本,因为我只希望它用于子类化?
【问题讨论】:
-
不清楚您为什么要这样做。为什么不在子类中有不同的实例变量?您真正想要解决的问题是什么?
-
@matt 我有一个正在出列的视图控制器,它可以是两种不同类型的相似视图控制器之一。我想使用多态性来使用它们的超类来执行操作。有没有更好的方法来做到这一点?
-
@DougSmith 编辑的答案看看
-
@DougSmith 你可以覆盖
getter and setter并且可以将出口连接到子类 -
从您的“解释”中我仍然看不到为什么这些需要是 same 实例变量。您只需要一个指针,它对超类是通用的,然后它指向 A 类中的一个变量和 B 类中的另一个变量。