iPhone - 无法将 int 放入 UIButton

Posted

技术标签:

【中文标题】iPhone - 无法将 int 放入 UIButton【英文标题】:iPhone - cannot get int put into 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 实际上是整数。 【参考方案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];

【讨论】:

以上是关于iPhone - 无法将 int 放入 UIButton的主要内容,如果未能解决你的问题,请参考以下文章

将 NSMutableArray 加载到 iPhone 的表视图中时无法识别的选择器

iPhone int 解析

如何将文件放入库目录以进行 iphone 设备测试

如何将音频歌曲放入 iPhone 中的 NSdata

如何将我的应用程序放入 iPhone 3G?

是否可以一次将保存在 imagelibrary 中的所有图像放入我在 iphone sdk 中的应用程序中?