我正在尝试制作一个按钮,首先点击它“阿拉巴马”,第二次点击“阿拉斯加”。我正在使用if语句,但是当我运行模拟器时,第一次点击就会出现“Alaska”。我做错了什么?
- (IBAction)button1:(id)sender {
hellolabel.text = @"Alabama";
if([hellolabel.text isEqual:@"Alabama"])
hellolabel.text = @"Alaska";
}
答案 0 :(得分:4)
您的代码排列不正确。
它实际上设置了两个州(阿拉巴马州,然后是阿拉斯加州),但由于它运行得如此之快,你不会看到它设置了阿拉巴马州。
因为:
hellolabel.text = @"Alabama";
出现在if
语句之前,它会将hellolabel.text
设置为Alabama。但是因为if
语句也包含在同一个动作中,它将继续运行它(因为这里的代码顺序运行),而不会停止。由于您只是将hellolabel.text
设置为Alabama,因此您的if
语句会将其设置为阿拉斯加,因为它确实符合其检查的条件(if([hellolabel.text isEqualToString:@"Alabama"])
)。
正确的代码以便正确检查,如下所示:
- (IBAction)button1:(id)sender {
if([hellolabel.text isEqualToString:@"Alabama"])
{
hellolabel.text = @"Alaska";
}
else
{
hellolabel.text = @"Alabama";
}
}