генерирование случайных значений в iPhone - PullRequest
2 голосов
/ 17 сентября 2009

Я использовал rand (). Но это дает конкретное значение даже после перезапуска приложения.

В моем приложении реализовано следующее.

- (void)viewDidLoad {
[super viewDidLoad];
int x,y;

x=random() % 480; y=random() % 300;

lblT.center=CGPointMake(x,y); // my label lblT
}

Попробуйте внедрить в свое приложение и запустить приложение. После перезапуска приложения вы увидите, что метка будет иметь определенное значение.

Ответы [ 6 ]

13 голосов
/ 17 сентября 2009

arc4random() - это встроенная функция, которая не требует заполнения (и поэтому не производит предсказуемые последовательности, которые могут быть сгенерированы с помощью заполнения), и она удобно возвращает целые числа. Я больше никогда ничего не использую.

8 голосов
/ 17 сентября 2009

Используйте следующую строку перед random ()

srand(time(NULL));

2 голосов
/ 17 сентября 2009

Генераторы случайных чисел в программном обеспечении фактически выдают последовательности значений PSEUDORANDOM.

Если вы не заполнили генератор случайных чисел значением действительно случайного события, вы всегда будете получать одну и ту же последовательность при каждом использовании программного обеспечения.

Я не знаю о вашем программном обеспечении, но, похоже, вы не запускаете генератор случайных чисел, Gcamp , вероятно, на правильном пути.

1 голос
/ 04 июля 2013

используйте этот код, только для Целое число случайные значения

#define random(min,max) ((arc4random() % (max-min+1)) + min)

тестирование

for (int i = 0; i < 500; i++) {
    NSLog(@"rand is %d", random(-100,100));
}
1 голос
/ 23 апреля 2011

Я бы сделал это так:

пейзаж:

- (void)viewDidLoad {
[super viewDidLoad];


int x = arc4random()%480;
int y = arc4random()%320;

lblT.center=CGPointMake(x,y);
}

не пейзаж:

 - (void)viewDidLoad {
    [super viewDidLoad];


    int x = arc4random()%320;
    int y = arc4random()%480;

    lblT.center=CGPointMake(x,y);
    }
1 голос
/ 17 сентября 2009

Поскольку вы используете random () , а не rand () , вы должны заполнить генератор случайных чисел этим битом кода ...

srandomdev();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...