IBAction确实有效,而如果内部声明没有

时间:2015-03-15 03:38:15

标签: ios objective-c if-statement

我正在创建一个简单的应用程序,我点按一个按钮,随机生成一个整数。如果这个整数是0那么用户得到一个点,如果没有,那么UILabel会说些什么。它可以识别按下按钮的时间。

        if ((ranNumOne = 0)) {
            NSLog(@"hello000000000000000");
            scor++;
            scoreNumber.text = [NSString stringWithFormat:@"%i", scor];
            thing.text = [NSString stringWithFormat:@"blah blah"];
        }
        else if ((ranNumOne = 4)) {
            NSLog(@"hello11111111111");
            thing.text = [NSString stringWithFormat:@"blah blah blah"];
        }

1 个答案:

答案 0 :(得分:1)

您的代码中存在错误,您通过以下语句为runNumOne分配了0值。

if ((ranNumOne = 0)) 

然后if语句检查真实条件。但是这个条件因为ranNumOne为0而失败。

请参阅以下链接,了解C

中表达式评估的操作优先级和顺序

Precedence and Order of Evaluation

因此,在更正后,您的代码将如下所示

if ((ranNumOne == 0)) {
        NSLog(@"hello000000000000000");
        scor += 1;
        scoreNumber.text = [NSString stringWithFormat:@"%i", scor];
        thing.text = [NSString stringWithFormat:@"blah blah"];
    }
    else if ((ranNumOne == 4)) {
        NSLog(@"hello11111111111");
        thing.text = [NSString stringWithFormat:@"blah blah blah"];
    }