Des actualités personnelles sous un style impersonnel, et inversement.
Follow @Thomas_Jannaud
First part in French, second one in English
pour tirer un nombre au hasard :
srandom([NSDate timeIntervalSinceReferenceDate]);
pour initialiser le générateur (à ne faire qu'une seule fois, au lancement de l'application par exemple) puis random()
renvoie un entier (pseudo) aléatoire entre 0 et RAND_MAX.
Ainsi,srandom([NSDate timeIntervalSinceReferenceDate]);
int a = random() % 10
renvoie un entier entre 0 et 9, et double b = (double) (random()) / (double)(RAND_MAX);
renvoie un nombre à virgule entre 0 et 1.
Pour chronométrer NSDate* debut = [[NSDate date] retain];
pour "lancer" le chrono, et
NSTimeInterval since = [debut timeIntervalSinceNow];
double a = -((double) (since));
pour "l'arrêter".
Remarque : mettre 'debut' comme une variable globale pour pouvoir chronométrer depuis 2 fonctions différentes.
Notez que l'on ne "lance" rien (au contraire de NSRunLoop - addTimer
), on fixe simplement une date comme date de référence, et on regarde à un moment donné quel est l'intervalle de temps entre ce moment et cette date de référence. C'est donc un nombre négatif.
Un peu bête comme technique, mais j'ai mis beaucoup de temps à la trouver étant donné que la plupart des méthodes retournent le nombre de secondes écoulées depuis le 1er janvier 1970 (soit un nombre entier de secondes). Pas pratique pour chronométrer des centièmes !
to generate a random number :
srandom([NSDate timeIntervalSinceReferenceDate]);
to initialise the generator (do that just once, e.g at the launch of the program)random()
will return an integer between 0 and RAND_MAX.
For example,srandom([NSDate timeIntervalSinceReferenceDate]);
int a = random() % 10
will return an integer from 0 to 9, and double b = (double) (random()) / (double)(RAND_MAX);
will give you a float number between 0 and 1.
To chronometerNSDate* start = [[NSDate date] retain];
will "start" the chrono, and
NSTimeInterval since = [debut timeIntervalSinceNow];
double a = -((double) (since));
will "stop" it, variable 'a' containing the elapsed time.
Remark : you should write 'start' as a global variable, so as to launch and stop the chronometer from 2 different functions.
Note that nothing is "launched" as with NSRunLoop - addTimer
; here we simply fix a date as a reference and, we eventually look what is the elapsed time since this reference date (which leads to a negative number).
It seems "stupid", but it took me a lot of time to figure it out since most other methods return the number of elapsed seconds since January 1th, 1970 (an integer). Not useful for accurate digits !
Laissez un commentaire !
Pas besoin de vous connecter, commencez à taper votre nom et une case "invité" apparaîtra.