8
votes

Nombre aléatoire dans iOS?

Comment générez-vous un nombre aléatoire lorsqu'un bouton est cliqué et en fonction de ce numéro, différentes actions ont lieu.

J'ai probablement besoin d'un nombre aléatoire de 1-10. xxx


6 Réponses :



27
votes

Il y a quelques problèmes de Rand () qu'il existe des charges de messages sur et ils vous recommandent d'utiliser arc4random () code> à la place. Cette fonction est fixée automatiquement et a un algorithme «meilleur» pour la génération de nombre.

int number = (arc4random() % 2) + 1;


0 commentaires


14
votes

et s'il vous plaît, s'il vous plaît, si vous générez un nombre aléatoire de 1 à 10 ... Utilisez un commutateur plutôt qu'un tas de si {} else si {} clauses: xxx


1 commentaires

Mieux encore, utilisez un algorithme approprié pour générer des nombres aléatoires compris entre 0 et N à partir d'une distribution uniforme de nombres aléatoires compris entre 0 et n_max : celui mis en œuvre dans Java.Util.random #nextint (int) est assez bien pensé: Java.sun.com/javase/6/docs/api/java/util/...



1
votes

J'ai eu un bon succès avec Arc4Random () - Juste Module pour définir une gamme. Par exemple:

arc4random ()% 100;

J'éviterais activement d'utiliser Rand () car il ne produit pas de nombres vraiment aléatoires et qu'il doit être ensemencé.


0 commentaires

0
votes
NSArray *arr=[NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10", nil];
    NSMutableArray *valueArray=[[NSMutableArray alloc]init];
    int  count=0;
    while(count<5)
    {
        int rand= arc4random()%10;
        NSLog(@"%d",rand);

        NSString *str=[arr objectAtIndex:rand];
        if(![valueArray containsObject:str])
        {
        [valueArray addObject:str];
         count++;
        } 
    }
    NSLog(@"%@",valueArray);

0 commentaires