Случайное число в iOS?

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

Мне, вероятно, только нужно случайное число от 1-10.

-(IBAction)buttonClicked{

"generate the random number"

if(number == 1){

    something happens
}

else if(number == 2){
    something else happens
}

etc

}
8
задан Cœur 29 December 2018 в 03:53
поделиться

5 ответов

И пожалуйста, пожалуйста, если вы генерируете случайное число от 1 до 10... используйте switch, а не кучу условий if {} else if {}:

switch (arc4random() % 10){
case 0:
   //blah blah
   break;
case 1:
   //blah blah
   break;
//etc etc
}
14
ответ дан 5 December 2019 в 04:36
поделиться

Есть несколько проблем с rand (), о которых написано множество сообщений, и они рекомендуют вам использовать вместо него arc4random () . Эта функция заполняется автоматически и имеет «лучший» алгоритм генерации чисел.

int myNumber = arc4random() % 10

Это будет означать, что myNumber будет находиться в диапазоне от 0 до 9.

Итак, в вашем случае вы хотите:

int number = (arc4random() % 2) + 1;

, что даст вам диапазон 1-2.

27
ответ дан 5 December 2019 в 04:36
поделиться

Поскольку obj-c является надмножеством языка c, вы можете свободно использовать rand function

4
ответ дан 5 December 2019 в 04:36
поделиться

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

int SecRandomCopyBytes (
   SecRandomRef rnd,
   size_t count,
   uint8_t *bytes
);

, как описано здесь .

2
ответ дан 5 December 2019 в 04:36
поделиться

У меня был хороший успех с arc4random () - просто установите модуль, чтобы задать диапазон. Например:

arc4random ()% 100;

Я бы активно избегал использования функции rand (), поскольку она не производит действительно случайных чисел и ее необходимо заполнить.

1
ответ дан 5 December 2019 в 04:36
поделиться