繁体   English   中英

我可以将一个ivar(或属性)添加到Objective-C中的现有类吗?

[英]can i add an ivar (or property) to an existing class in objective-c?

我想知道是否可以将ivar添加到UIButton类? 有点像类别,但不是针对方法,而是针对ivars。

我正在以编程方式创建和显示UIButton的数组,然后使用–addTarget:action:forControlEvents:进行–addTarget:action:forControlEvents:全事件,将它们全部链接到单个操作方法。

现在,我的接收器方法需要知道按下了所有按钮中的哪个按钮,但是使用“(id)sender”方法并不会将其剪切掉,因为唯一能区分所有按钮的是图像的显示方式,并且无法获得为此(我需要一个字符串)。 这些按钮都位于不同的位置,因此我可以做一些数学运算以将位置数据转换为“ id”,但是如果我沿行更改按钮的位置,则也需要更改数学运算,但是我不需要像那样。

除了添加(NSUInteger)idCode属性,我是否可以(NSUInteger)idCode UIButton并对其进行任何更改? 然后,当我创建按钮时,设置idCode,并且当target-action机制触发action方法时,我可以执行sender.idCode 这是这样做的方法吗?

有没有更好的标准/优雅方法来实现这种多种目标行为,从行为上看了哪里?

PS:在Mac上可以快速键入反引号吗?

你可以这样做。 但这不是必需的-每个UIView (以及包括UIButton子类)都具有您想要的tag属性。

UIButton以及所有UIView子类已经具有用于该目的的integer属性: tag

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM