为什么图像不随机化?

时间:2014-11-06 10:58:30

标签: objective-c xcode image viewdidload

我希望在首次打开应用时显示两个图片中的一个,apple sauce.jpg8292.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];

}

2 个答案:

答案 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()。它会起作用。