J'ai besoin d'aide avec une application. Je dois créer un générateur de nombres aléatoires pour les nombres entiers compris entre zéro et quinze, qui, en fonction du nombre créé, seront envoyés à une vue avec le nombre correspondant. C'est comme ça que je veux que ça marche
Appuyez sur un bouton -> Le générateur de nombres aléatoires donne un nombre compris entre 0 et 15 -> La vue permet de passer à une autre vue ayant reçu le numéro attribué par le générateur de nombres aléatoires.
Quelqu'un peut-il m'aider avec le code? Merci
arc4random()
est la fonction standard du générateur de nombres aléatoires Objective-C. Cela vous donnera un nombre compris entre zéro et ... eh bien, plus de quinze! Vous pouvez générer un nombre compris entre 0 et 15 (donc, 0, 1, 2, ... 15) avec le code suivant:
NSInteger randomNumber = arc4random() % 16;
Ensuite, vous pouvez effectuer un basculement ou une série d'instructions if
/else
sur Envoyer un autre contrôleur de vue:
UIViewController *viewController = nil;
switch (randomNumber)
{
case 0:
viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
break;
// etc ...
}
[self.navigationController pushViewController:viewController animated:YES];
Ou plutôt, en relisant la question, cela ressemblerait à ceci:
UIViewController *viewController = [[MyViewController alloc] initWithNibName:@"MyViewController"
viewController.number = randomNumber;
Et vous auriez une propriété NSInteger
sur la sous-classe MyViewController.
Vous pouvez utiliser arc4random_uniform
NSUInteger r = arc4random_uniform(16);
Selon Apple, le meilleur moyen consiste à utiliser arc4random_uniform et à dépasser la limite supérieure:
arc4random_uniform(16)
De la docs:
arc4random_uniform () retournera un nombre aléatoire uniformément distribué inférieur à upper_bound. arc4random_uniform () est recommandé par rapport à des constructions telles que «arc4random ()% upper_bound», car elles évitent «modulo biais» lorsque la borne supérieure n’est pas une puissance de deux.
int randomIndex = arc4random() % 14 + 1 ; // gives no .between 1 to 15 ..
switch (randomIndex)
{
case 0 :
Push view 1 ;
break;
case 1:
...
}
Dans Swift 4.2, nous n’avons pas à appeler une fonction "arc4random_uniform" pour créer des nombres aléatoires, nous pouvons maintenant appeler une fonction "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)
Nous pouvons utiliser la fonction C Rand()
pour cela:
Cela génère un entier compris entre 1 et 30. Vous pouvez également utiliser la fonction arc4random
comme ceci:
int i = arc4random() % 30;
NSLog(@"Random Number: %i", i);