Подтвердить что ты не робот

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

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

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

Может кто-нибудь помочь мне с кодом? Благодаря

4b9b3361

Ответ 1

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

NSInteger randomNumber = arc4random() % 16;

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

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.

Ответ 2

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

NSUInteger r = arc4random_uniform(16);

Ответ 3

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

arc4random_uniform(16)

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

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

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

Ответ 4

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

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

    case 1:
    ...

}

Ответ 5

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

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

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

Ответ 6

В 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)

Ответ 7

extension CGFloat {
   static func random() -> CGFloat {
       return CGFloat(arc4random()) / CGFloat(UInt32.max)
   }
}