即时创建一个应用程序生成随机文本,当我按下按钮时,我有代码,它工作正常,但有一些事情,我想改变,当我运行应用程序,我按下它显示的按钮:
“好吧,hiya,yoo,yoo,你好,好吧,Hiya,yoo,yoo,hiya,你好,你好,好吧”
这是前13次点击,每当我进入应用程序时都是订单。基本上我不希望他们连续两次重复,我希望他们在启动应用程序时以不同的顺序启动。
我希望能够写出至少2行文字,但我如何使用Label做到这一点?
继承我的代码:
·H
@interface ViewController1 : UIViewController {
IBOutlet UILabel *textview;
}
-(IBAction)random;
的.m
@interface ViewController1()
@end
@implementation ViewController1
- (IBAction)随机{
int text = rand() % 5;
switch (text) {
case 0:
textview.text = @"Hello";
break;
case 1:
textview.text = @"hi";
break;
case 2:
textview.text = @"alright";
break;
case 3:
textview.text = @"yoo";
break;
case 4:
textview.text = @"hiya";
break;
default:
break;
}
}
谢谢你:)答案 0 :(得分:1)
使用函数arc4random()
代替random()
。您遇到的问题是因为函数rand
需要在调用之前设置种子。这是rand
在后台使用的随机数生成器的起始值。当您不使用自己的种子时,它始终具有相同的默认值,因此您始终获得相同的随机值序列。使用arc4random
时,无需设置种子。有关详细信息,请参阅this blog post和documentation。
#include <stdlib.h>
...
int text = arc4random() % 5;
答案 1 :(得分:0)
@interface ViewController1 ()
@end
@implementation ViewController1
-(IBAction)random {
// Pseudocode here
if (srand() not yet called) then
srand();
endif
// end Pseudocode
// You are better to put the call to srand() somewhere
// it will only ever be called once, rather than having
// to mess around with an if-statement.
int text = arc4random() % 50;
switch (text) {
case 0:
textview.text = @"My text here";
break;
default:
break;
}
}