Iphone 使用(id)发送器从按钮获取信息
这很简单,但我不知道怎么做。要从按钮获取标题,可以使用:Iphone 使用(id)发送器从按钮获取信息,iphone,objective-c,button,Iphone,Objective C,Button,这很简单,但我不知道怎么做。要从按钮获取标题,可以使用: NSString *title = [sender titleForState:UIControlStateNormal]; 但是,是否有办法从按钮获取其他信息,如“标签”或“提示” 如果没有,我希望在按下不同的按钮时能够有不同的动作。所以,有一个“添加1”按钮,一个“添加2”按钮等等,我用同样的“动作”来做稍微不同的事情。这可以通过一个“If”语句来解决,但我不确定如何进行比较。(假设按钮标题为“赢”): 不起作用,那么我如何进行比较
NSString *title = [sender titleForState:UIControlStateNormal];
但是,是否有办法从按钮获取其他信息,如“标签”或“提示”
如果没有,我希望在按下不同的按钮时能够有不同的动作。所以,有一个“添加1”按钮,一个“添加2”按钮等等,我用同样的“动作”来做稍微不同的事情。这可以通过一个“If”语句来解决,但我不确定如何进行比较。(假设按钮标题为“赢”):
不起作用,那么我如何进行比较呢
(我还尝试:
NSString *compare = [[NSString alloc] initWithFormat:@"WIN"];
if (title == compare)
{
do something
}
)您应该始终使用isEqualToString比较字符串:
if ([title isEqualToString:@"WIN"])
有时使用==运算符可以正确比较字符串,例如在比较常量字符串时,但在Objective-C(或Java)中不应使用==进行字符串比较
如果使用==比较字符串,则会比较它们的内存地址。如果比较设置为某个常量的字符串,则==将为真。如果它们是相同的字符串,但内存地址不同,则==将为false
在Python这样的语言中,==是重载的,因此您会得到“期望”的行为。您应该始终使用isEqualToString比较字符串:
if ([title isEqualToString:@"WIN"])
有时使用==运算符可以正确比较字符串,例如在比较常量字符串时,但在Objective-C(或Java)中不应使用==进行字符串比较
如果使用==比较字符串,则会比较它们的内存地址。如果比较设置为某个常量的字符串,则==将为真。如果它们是相同的字符串,但内存地址不同,则==将为false
在Python这样的语言中,==是重载的,因此您可以获得“期望”的行为。在紧急情况下,您可以使用的另一个选项是设置按钮的
标记
属性(在IB或代码中),然后选中
if(sender.tag==69){//one-button-code}else{other-button-code}
在紧急情况下,您可以使用的另一个选项是设置按钮的tag
属性(在IB或in-code中),然后选中
if(sender.tag==69){//one-button-code}else{other-button-code}
我还想指出,通常情况下,您没有两个按钮可以执行不同的操作,它们使用相同的操作。而是为按钮创建两个单独的操作。通过这种方式,您不需要检查有关按钮的任何信息(例如,其标题)来确定您应该执行的操作。我还想指出,通常情况下,您没有两个按钮可以执行不同的操作,它们使用相同的操作。而是为按钮创建两个单独的操作。通过这种方式,您无需检查有关按钮的任何信息(例如,其标题)来确定您应该做什么。