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。
【问题讨论】:
你得到什么错误?first
和 second
不是浮点数,因此应该是 [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的主要内容,如果未能解决你的问题,请参考以下文章