tag的使用,其实某些情况可以用hash代替。

来源:互联网 发布:帝国整站电影源码 编辑:程序博客网 时间:2024/04/26 17:58

在java等其他语言里用hashMap判断是否是同一实例,于是我在OC里查找有没有类似的方法,于是发现了一个继承与NSObject的属性“hash”。hash是实例的哈希值,在某一实例为唯一值。(如理解错误,希望指出)。
某些用tag的场景,比如:

多个button的使用,而多个button为自身属性或者参数,多个button用同一个方法,如
<pre name="code" class="objc">-(void)clickButton:(UIButton*)sender

这时很多人的做法是分别给button标记tag值。如:

self.button1.tag = 1;    self.button2.tag=2;

然后:

<pre name="code" class="html"><pre name="code" class="objc">-(void)clickButton:(UIButton*)sender{     if(sender.tag == 1){     }else if(sender.tag == 2){     }}
</pre><pre name="code" class="objc">

其实可以这样实现

</pre><pre name="code" class="objc"><pre name="code" class="objc">-(void)clickButton:(UIButton*)sender{     if(sender.hash == self.button1.hash){     }else if(sender.hash == self.button2.hash){     }}



</pre><pre>

0 0