在我的应用程序中,我想将NSMutableDictionary
关联到所有UIElements
(UIButton
,UILable
等),我可以通过继承每个元素轻松实现这一点,但我只是想知道我是否可以创建自己的UIControl
子类 - 具有类型NSMutableDictionary
的属性 - 作为所有以编程方式创建的UIElement
的超类,以便我可以减少子类数。
就像这样
@interface UIControl : MyControls
{
}
@property(nonatomic,retain) NSMutableDictionary *details;
@end
并将MyControls
作为所有以编程方式创建的UIElements的超类
答案 0 :(得分:0)
您可以执行此操作,而不是通过子类化,而是将自己的属性和方法添加到UIControl
本身(UIButton
,UILabel
的超类等)。然后,这些将由您实例化的任何标准按钮,标签等继承。 Objective-C允许您使用Categories非常轻松地添加自己的方法。但是,您无法通过类别添加实例变量。为此,您需要使用Objective-C Runtime Reference中记录的关联引用。
有一个关于如何执行此操作的良好教程here。
顺便说一下,我不一定不同意inturbidus。但如果你确定要走这条路,你就是这样做的。