0

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

int randomNumber = rand() %5;

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

1 回答 1

2

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

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

[NSTimer scheduledTimerWithTimeInterval:(randomInterval) ...

但是该技术将在每次迭代中使用相同的间隔。如果您每次都想要一个新的随机间隔,请让计时器重复,并在内部changeBackground设置另一个(通过委托给更合适命名的新方法,例如-(void) setupRandomBackgroundChangeTimerIfNecessary

于 2012-07-08T18:26:00.933 回答