我希望在首次打开应用时显示两个图片中的一个,apple sauce.jpg
和8292.jpg
。但是,我已多次打开应用程序,并且始终显示8292.jpg
。为什么这样,我该如何解决?
这是我的代码:
- (void)viewDidLoad {
int randomimages = rand() % 2;
switch (randomimages) {
case 0:
imageview.image = [UIImage imageNamed:@"apple sauce.jpg"];
break;
case 1:
imageview.image = [UIImage imageNamed:@"8292.jpg"];
break;
default:
break;
}
theLabel.text = @"Submit it!";
[super viewDidLoad];
}
答案 0 :(得分:0)
您没有为随机数生成器播种:
$ man 3 rand
[...]如果未提供种子值,则会自动为这些函数添加值1。
修复很简单:在应用启动过程中的某处插入此内容,例如在applicationDidFinishLaunching:
中。
sranddev();
答案 1 :(得分:0)
我正在运行您的代码,rand()
方法始终返回16807
。我不知道。但是,我尝试使用此代码,rand()
正常工作
for(int i = 0 ; i < 5 ; i++ ) {
int randomNum = rand();
NSLog(@"randomNum=%d, result=%d", randomNum, randomNum % 2);
}
编辑:
在srand(time(NULL))
方法之前添加此代码rand()
。它会起作用。