Eseguire un metodo dopo n secondi
Tutta la famiglia performSelector è davvero interessante e può essere utile in una moltitudine di casi. La sua applicazione più semplice e comune è la seguente:
1 2 3 4 5 | [self performSelector:@selector(myMethod) withObject:nil afterDelay:3]; // - (void)myMethod { NSLog(@"Hello World!"); } |
Tuttavia considerate che il “timer” non è preciso. Questa procedura, quindi, va usata quando non è richiesta una “notevole” precisione temporale.
Recuperare la versione dell’applicazione
1 2 |
YES, true o TRUE?
Andando a spulciare nel Kernel Apple iPhone è possibile renderci conto che YES, true e TRUE sono in pratica la stessa edentica cosa:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // definizione di YES #define YES (BOOL)1 #define NO (BOOL)0 // definizione di true #define true 1 #define false 0 // definizione di TRUE #if !defined(TRUE) #define TRUE 1 #endif #if !defined(FALSE) #define FALSE 0 #endif |
Almeno per adesso…
Vibrazione
1 2 3 | #import <AudioToolbox/AudioToolbox.h> // AudioServicesPlaySystemSound (kSystemSoundID_Vibrate); |
Puntatore CGImageRef a partire da un UIImage
1 2 3 4 | UIImage *heart = [UIImage imageNamed:@"LittleHeart.png"]; CGImageRef image = [heart CGImage]; // L'immagine adesso può essere "rasterizzata" su un CGContextRef CGContextDrawImage(c, (CGRect){0, 0, 100, 100}, image); |
Animazioni
1 2 3 4 5 | [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:1.5]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; // ... [UIView commitAnimations]; |
NSLog
1 2 3 | NSLog(@"NSString object %@ ", myString); NSLog(@"Float: %f ", myFloat); NSLog(@"Integer: %i ", myInt); |
Convertitore da RGB a UIColor
1 | #define RGBA(r,g,b,a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a] |
Passare parametri ad un NSTimer
Sfruttando il parametro userInfo è possibile inviare un puntatore ad un nostro oggetto al metodo richiamato da timer.
1 2 3 4 5 6 7 8 9 10 11 12 13 | [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerMethod) userInfo:objectPointer repeats:YES]; // ... -(void)timerMethod:(NSTimer*)timer { // Recupero il puntatore al mio oggetto objectPointer = [timer userInfo]; // oppure [[timer userInfo] myMethod]; int a = [[timer userInfo] myProperty]; // che è lo stesso int a = [objectPointer myProperty]; } |
Tempo di esecuzione
Ecco un semplice modo per calcolare tempi brevi utili per verificare la velocità di esecuzione del codice:
1 2 3 4 | CFAbsoluteTime initialTime = CFAbsoluteTimeGetCurrent(); // ... code CFAbsoluteTime finalTime = CFAbsoluteTimeGetCurrent(); NSLog(@"Tempo trascorso %f", finalTime-initialTime); |








6
Non ci sono commenti per questo Post
Lascia un commento