arc4random
возвращает u_int32_t
, который является беззнаковым типом. Вам нужно привести его к типу со знаком и затем вычесть.
Полагаю, вы хотите, чтобы число от -10 до +10 включительно (иногда нужно, чтобы и -10, и +10 выбирались).
Если вы используете iOS 4.3 или более позднюю версию или Mac OS X 10.7 или более позднюю версию, вам следует использовать функцию arc4random_uniform
:
int myNumber = (int)arc4random_uniform(21) - 10;
Если вы нацеливаетесь на более старую ОС, вы должны использовать arc4random
:
int myNumber = (int)(arc4random() % 21) - 10;