生成随机数但未分配UIButton

时间:2014-08-12 09:23:06

标签: ios random

我正在尝试使用下面的代码生成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);

4 个答案:

答案 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;