在Cocoa中生成随机时间间隔

时间:2012-07-08 18:13:31

标签: objective-c cocoa nstimer

我对Cocoa很陌生,但我想把一个简单的反应游戏放在一起。因此我需要随机生成NSTimer的时间间隔。目前我已尝试过以下代码。

int randomNumber = rand() %5;

changeColor = [NSTimer scheduledTimerWithTimeInterval:(randomNumber) target:self selector:@selector(changeBackground) userInfo:nil repeats:YES];

1 个答案:

答案 0 :(得分:2)

如果您希望分辨率小于1秒,则应从随机数创建一个双精度数。也许是这样的:

int sourceRandom100x = rand() % 500; // i.e. 435
double randomInterval = sourceRandom100x/100.0  // 4.35

[NSTimer scheduledTimerWithTimeInterval:(randomInterval) ...

但是该技术将在每次迭代时使用相同的间隔。如果您希望每次都有一个新的随机间隔,请使计时器重复,并在changeBackground内设置另一个(通过委托更合适的新方法,例如{{ 1}}