it-roy-ru.com

iOS Генератор случайных чисел в новом представлении

Мне нужна помощь с приложением. Мне нужно сделать генератор случайных чисел для целых чисел от нуля до пятнадцати, который затем, в зависимости от того, какое число создано, подтолкнет к представлению с соответствующим числом. Вот как я хочу, чтобы это работало

Нажмите кнопку -> генератор случайных чисел дает число от 0 до 15 -> представление переходит к другому представлению, которому был присвоен номер, который дал генератор случайных чисел.

Кто-нибудь может мне помочь с кодом? Спасибо

26
Sam

arc4random() - стандартная функция генератора случайных чисел Objective-C. Это даст вам число от нуля до ... ну, больше пятнадцати! Вы можете сгенерировать число от 0 до 15 (т. Е. 0, 1, 2, ... 15) с помощью следующего кода:

NSInteger randomNumber = arc4random() % 16;

Затем вы можете выполнить переключение или серию операторов if/else для Push другого контроллера представления:

UIViewController *viewController = nil;
switch (randomNumber)
{
    case 0:
        viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
    break;
    // etc ...
}

[self.navigationController pushViewController:viewController animated:YES];

Или, вернее, перечитав вопрос, это будет выглядеть следующим образом:

UIViewController *viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" 
viewController.number = randomNumber;

И у вас будет свойство NSInteger в подклассе MyViewController.

96
Ash Furrow

Вы можете использовать arc4random_uniform

NSUInteger r = arc4random_uniform(16);
19
Rémy Virin

Согласно Apple, лучший способ - использовать arc4random_uniform и передать верхнюю границу:

arc4random_uniform(16)

Из документов:

arc4random_uniform () вернет равномерно распределенное случайное число меньше, чем upper_bound. arc4random_uniform () рекомендуется более такие конструкции, как `` arc4random ()% upper_bound '', так как он избегает "modulo bias", когда верхняя граница не является степенью двойки.

https://developer.Apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/arc4random.3.html

10
frodo2975
    int randomIndex = arc4random() % 14 + 1 ; // gives no .between 1 to 15 ..

    switch (randomIndex)
{
    case 0 :
    Push view 1 ;
    break;

    case 1:
    ...

}
9
Shubhank

В Swift 4.2 нам не нужно вызывать некоторую функцию «arc4random_uniform» для создания случайных чисел, теперь мы можем просто вызвать функцию «random (in: RANGE)».

//Create Random numbers Swift 4.2

//Int
let randomInt = Int.random(in: 1...10)

//Double
let radomDouble = Double.random(in: 1...10)

//Float
let randomFloat = Double.random(in: 1...10)
0
Blahji

Мы можем использовать функцию C Rand() для этого:

Это генерирует целое число от 1 до 30. В качестве альтернативы вы можете использовать функцию arc4random так:

int i = arc4random() % 30;
NSLog(@"Random Number: %i", i);
0
user3917303