0

在我的应用程序中,我想与NSMutableDictionary所有UIElementsUIButton、、UILable等)相关联,我可以通过对每个元素进行子类化来轻松实现这一点,但我只想知道我是否可以创建自己的UIControl子类 - 具有类型的属性NSMutableDictionary- 作为所有元素的超类无论如何以编程方式创建UIElements,这样我就可以减少子类的数量。

这里像这样

@interface UIControl : MyControls
{

}
@property(nonatomic,retain) NSMutableDictionary *details;
@end

MyControls作为所有以编程方式创建的 UIElements 的超类

4

1 回答 1

0

您可以做到这一点,不是通过子类化,而是通过将自己的属性和方法添加到UIControl自身( 、 等的超类UIButtonUILabel。然后,这些将被您实例化的任何标准按钮、标签等继承。Objective-C 允许您使用Categories非常轻松地添加自己的方法。但是,您不能通过类别添加实例变量。为此,您需要使用Objective-C 运行时参考中记录的关联参考

有一个很好的教程关于如何做到这一点here

顺便说一句,我不一定不同意 inturbidus。但是,如果您确定要走这条路,那就是这样做的方式。

于 2012-12-26T23:01:10.510 回答