【问题标题】:iPhone - cannot get int put into UIButtoniPhone - 无法将 int 放入 UIButton
【发布时间】:2011-05-14 10:18:26
【问题描述】:

我假设这只是因为我很累..但由于某种原因,我无法让我的 UIBUTTONS 填满生成的数字。除答案外,数字是随机生成的。我相信这很简单。谢谢!

- (void)determineQ {
    first = arc4random() % 1000;
    second = arc4random() % 1000;
    wrong1 = arc4random() % 1000;
    wrong2 = arc4random() % 1000;
    wrong3 = arc4random() % 1000;
    while (first < second) {
        first = arc4random() % 1000;
    }
    [question setText:[NSString stringWithFormat:@"%d - %d = ?", first, second]];
    answer = first - second;
    NSLog(@"%d - %d = %d", first, second, answer);
    correctLetter = arc4random() % 100;
    if (correctLetter <= 25) {
        [ans2 setTitle:[NSString stringWithFormat:@"%d", answer] forState:UIControlEventAllEvents];
        [ans2 setTitle:[NSString stringWithFormat:@"%d", wrong1] forState:UIControlEventAllEvents];
        [ans3 setTitle:[NSString stringWithFormat:@"%d", wrong2] forState:UIControlEventAllEvents];
        [ans4 setTitle:[NSString stringWithFormat:@"%d", wrong3] forState:UIControlEventAllEvents];
        NSLog(@"The answer is A");
    } else if (correctLetter <= 50) {
        [ans1 setTitle:[NSString stringWithFormat:@"%d", wrong1] forState:UIControlEventAllEvents];
        [ans2 setTitle:[NSString stringWithFormat:@"%d", answer] forState:UIControlEventAllEvents];
        [ans3 setTitle:[NSString stringWithFormat:@"%d", wrong2] forState:UIControlEventAllEvents];
        [ans4 setTitle:[NSString stringWithFormat:@"%d", wrong3] forState:UIControlEventAllEvents];
        NSLog(@"The answer is B");
    } else if (correctLetter <= 75) {
        [ans1 setTitle:[NSString stringWithFormat:@"%d", wrong1] forState:UIControlEventAllEvents];
        [ans2 setTitle:[NSString stringWithFormat:@"%d", wrong2] forState:UIControlEventAllEvents];
        [ans3 setTitle:[NSString stringWithFormat:@"%d", answer] forState:UIControlEventAllEvents];
        [ans4 setTitle:[NSString stringWithFormat:@"%d", wrong3] forState:UIControlEventAllEvents];
        NSLog(@"The answer is C");
    } else if (correctLetter <= 100) {
        [ans1 setTitle:[NSString stringWithFormat:@"%d", wrong1] forState:UIControlEventAllEvents];
        [ans2 setTitle:[NSString stringWithFormat:@"%d", wrong2] forState:UIControlEventAllEvents];
        [ans3 setTitle:[NSString stringWithFormat:@"%d", wrong3] forState:UIControlEventAllEvents];
        [ans4 setTitle:[NSString stringWithFormat:@"%d", answer] forState:UIControlEventAllEvents];
        NSLog(@"The answer is D");
    }
}

编辑:对不起,我不小心放了 UILabel,我的意思是 UIButtons。

【问题讨论】:

  • 你得到什么错误? firstsecond 不是浮点数,因此应该是 [question setText:[NSString stringWithFormat:@"%.0f - %.0f = ?", first, second]];
  • first 和 second 实际上是整数。

标签: iphone cocoa-touch ios uibutton


【解决方案1】:

Arcrandom 生成 float 或 double,尝试将每个转换为 int,如下所示:

 [ans2 setTitle:[NSString stringWithFormat:@"%d", ((int)answer)] forState:UIControlEventAllEvents];

【讨论】:

    【解决方案2】:

    如果您使用的是UILabel。使用setText 而不是setTitle

        [ans2 settext:[NSString stringWithFormat:@"%d", answer]];
    

    ans2.text = [NSString stringWithFormat:@"%d", answer];
    

    【讨论】:

    • 我的意思是 UIButtons,不小心放了 UILabels :/
    • @Muller :好的,请在发布问题时小心。
    【解决方案3】:

    我想通了,我不应该一直在forState中等待一个Control Event,应该是这个

        [ans2 setTitle:[NSString stringWithFormat:@"%d", answer] forState:UIControlStateNormal];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-28
      • 2011-11-29
      • 2017-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多