Генератор случайных чисел iOS для нового представления
Мне нужна помощь в приложении. Мне нужно создать генератор случайных чисел для целых чисел от нуля до пятнадцати, а затем, в зависимости от того, какое число создано, нажмите на представление с соответствующим номером.
Вот как я хочу, чтобы он работал
Нажмите кнопку → генератор случайных чисел дает число от 0 до 15 → , отображает нажатие на другое представление, которому присвоен номер, который дал генератор случайных чисел.
Может кто-нибудь помочь мне с кодом?
Благодаря
Ответы
Ответ 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)
}
}