我的 iOS 项目中有一个 UITableViewCells 的多态链(针对问题进行了简化):
====================
| BaseCellWithButton |
====================
^
|
|
========================
| BaseCellWithTwoButtons |
========================
BaseCellWithButton 有 1 个属性:
@property (nonatomic, strong) UIButton* button;
BaseCellWithTwoButtons 足够复杂,我想创建一个 Nib 。我知道 IBOutlet 属性通常是 (nonatomic,weak)IBOutlet ...
,但我想像 (nonatomic,strong)IBOutlet ...
那样声明它,所以我可以选择将它设置在 Nib 的子类中,但如果没有,我可以在父类中实例化它。
这是一种不好的做法吗?有没有更好的方法来实现多态性,同时允许子类创建 Nib 并仍然重用父属性?
最佳答案
您可以在 BaseCellWithButton
类中将 button
声明为 IBOutlet
,然后在任何子类中连接来自 xib 的按钮。
我附加了示例文件,您可以将其添加到任何项目中,并查看它是如何工作的。
有 Base 类和 Child 类。
如果您计划通过父类中的代码实例化它,那么strong
引用也是最佳实践
在基类中,声明了按钮
,但仅在子类中连接到xib
https://dl.dropboxusercontent.com/u/48223929/SubclassTableCellsExample.zip
关于ios - 具有可选 IBOutlet 的属性多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27692007/