如何比较两个UIButtons的相等性

时间:2014-07-29 03:42:09

标签: ios objective-c uibutton

我有两个UIButton实例,都是从故事板中获得的:一个通过IBOutlet UIButton myStar,另一个作为sender的参数-(IBAction) buttonClicked:(UIButton *) sender。如何比较myStarsender而不会出现误报?虽然我从故事板中拖放,但我相信它们是两个不同的实例,有两个不同的id s。

我不能简单地比较标题或图像名称,因为我有多个具有相同标题和图像名称的按钮。

3 个答案:

答案 0 :(得分:1)

在比较每个UIButton的set tag属性之前,您可以使用其tag属性比较两个UIButton。请记住,tag属性必须是唯一的。

if (myStar.tag == sender.tag)
{
     code
}

答案 1 :(得分:1)

sender == myStar表示sendermyStar的实例相同,而不是UIButton的另一个实例(可能是偶然)相同的值。

在上下文中,sender == myStar字面意思是&{34; sender消息为myStar"。

根据您的描述,我相信您要确保两个指针指向同一个对象。在这种情况下,sender == myStar是正确的方法。

答案 2 :(得分:0)

我认为你会发现sender == myStar是真的,因为它们指向同一个按钮,因为它听起来像是你用ctrl +拖动来创建一个IBOutlet UIButton,然后你拖放来创建一个IBAction按钮点击(通过发件人)。

始终

sender == myStar,除非您正在调用buttonClicked并以编程方式传递其他变量,或者接口构建器中的另一个按钮链接到该IBAction。我希望有所帮助。