使用Categories将数据添加到UIView

时间:2012-06-04 07:36:13

标签: objective-c ios uiview subclass objective-c-category

我想扩展iOS UIView类,以便在我的UIView实例中存储一些自己的数据和状态。我是iOS新手。我知道我不能将实例变量添加到Categories中,因此我可能无法向我的UIViews添加新状态。

因此我想创建一个NSArray,其中每个UIViews都有一个唯一的标记,然后用作NSArray的索引,NSArray中的每个项目都保存有关该特定UIView的附加状态信息。这里的缺点是标签和NSArray的管理。如果我可以通过类别直接将状态添加到任何UIView,那将会更加直截了当。

有人可以告诉我最好的方法来向UIViews添加一些实例变量和状态吗?我使用了很多UIView子类,因此不想真正开始子类化UIView。

感谢。

2 个答案:

答案 0 :(得分:1)

Associative references会让你做你想做的事,虽然我不确定你为什么不想要子类(你已经说过你有很多子类 - 或许更好的子类化策略可能是更好的解决方案?)。

答案 1 :(得分:0)

只需使用UIView.tag属性即可。它的NSInteger(长),所以你可以在其他地方有一张地图。