【发布时间】:2011-12-21 22:11:03
【问题描述】:
我的原始问题 ID here。
其实我需要更多关于这个问题的说明。
考虑以下场景:
我的项目中有三个类。说 A、B 和 C。
这三个类有一些共同的方法。所以我创建了另一个类(比如 D),我在其中添加了那些常用方法。
现在 D 类是父类,A、B 和 C 类是子类。也就是说,A,B & C 类继承了 D 的属性。
每个子类都有三个 UIButton。每个子类中的每个按钮都有一些动作。但是按钮的颜色、框架、图像等属性在所有三个类中都是相同的。
所以,我需要为每个子类中的按钮做以下事情:
- 初始化按钮
- 分配它们
- 设置框架
- 设置颜色
- 设置操作(使用
[button addTarget:self action:@selector(touchUpInsideAction:) forControlEvents:UIControlEventTouchUpInside]) - 等
除了“设置动作”之外,所有子类(A、B 和 C 类)中的所有内容都相同
现在我的问题是,我可以在 D 类(父类)中创建按钮、它的属性和操作吗,我可以在每个子类(A、B 和 C 类)中编写操作方法的 (touchUpInsideAction:) 实现吗?
这样,我可以减少我在项目中的重复代码。这里我会从父类调用子类的方法touchUpInsideAction:。
这是正确的方法还是我应该分别为每个类编写按钮创建和属性?
提前致谢
【问题讨论】:
-
与其在 D 类中分配动作,为什么不从普通类(例如 D 类)获取按钮并在每个类(例如 A 类)中分配动作?
标签: iphone objective-c subclass superclass function-calls