我有两个UIButton实例,都是从故事板中获得的:一个通过IBOutlet UIButton myStar
,另一个作为sender
的参数-(IBAction) buttonClicked:(UIButton *) sender
。如何比较myStar
和sender
而不会出现误报?虽然我从故事板中拖放,但我相信它们是两个不同的实例,有两个不同的id
s。
我不能简单地比较标题或图像名称,因为我有多个具有相同标题和图像名称的按钮。
答案 0 :(得分:1)
在比较每个UIButton的set tag属性之前,您可以使用其tag属性比较两个UIButton。请记住,tag属性必须是唯一的。
if (myStar.tag == sender.tag)
{
code
}
答案 1 :(得分:1)
sender == myStar
表示sender
与myStar
的实例相同,而不是UIButton
的另一个实例(可能是偶然)相同的值。
在上下文中,sender == myStar
字面意思是&{34; sender
消息为myStar
"。
根据您的描述,我相信您要确保两个指针指向同一个对象。在这种情况下,sender == myStar
是正确的方法。
答案 2 :(得分:0)
我认为你会发现sender == myStar
是真的,因为它们指向同一个按钮,因为它听起来像是你用ctrl +拖动来创建一个IBOutlet UIButton,然后你拖放来创建一个IBAction按钮点击(通过发件人)。
sender == myStar
,除非您正在调用buttonClicked
并以编程方式传递其他变量,或者接口构建器中的另一个按钮链接到该IBAction。我希望有所帮助。