我正在尝试使用下面的代码生成7个随机数,每个代表UIButton
。
但最后,每次使用此代码生成时,它都会提供相同的按钮。
NSMutableArray* rand_btns = [[NSMutableArray alloc] initWithObjects: A1,A2,A3,A4,A5,B1,B2,B3,B4,B5,C1,C2,C3,C4,C5,D1,D2,D3,D4,D5,nil];
int randomTag = rand() % 20;
int randomTag2 = rand() % 20;
int randomTag3 = rand() % 20;
int randomTag4 = rand() % 20;
int randomTag5 = rand() % 20;
int randomTag6 = rand() % 20;
int randomTag7 = rand() % 20;
[[rand_btns objectAtIndex:randomTag] setHidden:NO];
NSLog(@"%d",randomTag);
[[rand_btns objectAtIndex:randomTag2] setHidden:NO];
NSLog(@"%d",randomTag2);
[[rand_btns objectAtIndex:randomTag3] setHidden:NO];
NSLog(@"%d",randomTag3);
[[rand_btns objectAtIndex:randomTag4] setHidden:NO];
NSLog(@"%d",randomTag4);
[[rand_btns objectAtIndex:randomTag5] setHidden:NO];
NSLog(@"%d",randomTag5);
[[rand_btns objectAtIndex:randomTag6] setHidden:NO];
NSLog(@"%d",randomTag6);
[[rand_btns objectAtIndex:randomTag7] setHidden:NO];
NSLog(@"%d",randomTag7);
答案 0 :(得分:4)
您应该使用arc4random()
,但是如果您必须使用rand()
,那么请在使用它之前将其播种:
srand(time(NULL));
(这只需要为每个进程调用执行一次,因此可以在app delegate中完成)。
答案 1 :(得分:2)
使用arc4random()代替r和()
答案 2 :(得分:1)
您也可以尝试:)
int randomTag = (int)((rand()/(CGFloat)RAND_MAX)*20);
....
答案 3 :(得分:1)
int randNum = arc4random() % (20 - 0) + 0;
每次返回(0 - 20)之间的随机数。 如果你想要一个介于(10 - 20)之间的随机数,请使用此代码
int randNum = arc4random() % (20 - 10) + 10;