Как Вы генерируете случайное число, когда кнопка нажата, и в зависимости от того числа, различные действия происходят.
Мне, вероятно, только нужно случайное число от 1-10.
-(IBAction)buttonClicked{
"generate the random number"
if(number == 1){
something happens
}
else if(number == 2){
something else happens
}
etc
}
И пожалуйста, пожалуйста, если вы генерируете случайное число от 1 до 10... используйте switch, а не кучу условий if {} else if {}:
switch (arc4random() % 10){
case 0:
//blah blah
break;
case 1:
//blah blah
break;
//etc etc
}
Есть несколько проблем с rand (), о которых написано множество сообщений, и они рекомендуют вам использовать вместо него arc4random ()
. Эта функция заполняется автоматически и имеет «лучший» алгоритм генерации чисел.
int myNumber = arc4random() % 10
Это будет означать, что myNumber
будет находиться в диапазоне от 0 до 9.
Итак, в вашем случае вы хотите:
int number = (arc4random() % 2) + 1;
, что даст вам диапазон 1-2.
Поскольку obj-c является надмножеством языка c, вы можете свободно использовать rand function
Если вам нужно криптографически безопасное случайное число, вы можете использовать:
int SecRandomCopyBytes (
SecRandomRef rnd,
size_t count,
uint8_t *bytes
);
, как описано здесь .
У меня был хороший успех с arc4random () - просто установите модуль, чтобы задать диапазон. Например:
arc4random ()% 100;
Я бы активно избегал использования функции rand (), поскольку она не производит действительно случайных чисел и ее необходимо заполнить.