10 utili snippet per Apple iPhone
venerdì 8 gennaio, 2010Eseguire 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:
-
[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
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:
-
// 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
-
#import <AudioToolbox/AudioToolbox.h>
-
//
-
AudioServicesPlaySystemSound (kSystemSoundID_Vibrate);
Puntatore CGImageRef a partire da un UIImage
-
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
-
[UIView beginAnimations:nil context:NULL];
-
[UIView setAnimationDuration:1.5];
-
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
-
// ...
-
[UIView commitAnimations];
NSLog
-
NSLog(@"NSString object %@ ", myString);
-
NSLog(@"Float: %f ", myFloat);
-
NSLog(@"Integer: %i ", myInt);
Convertitore da RGB a UIColor
-
#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.
-
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerMethod) userInfo:objectPointer repeats:YES];
-
-
// ...
-
-
// 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:
-
CFAbsoluteTime initialTime = CFAbsoluteTimeGetCurrent();
-
// ... code
-
CFAbsoluteTime finalTime = CFAbsoluteTimeGetCurrent();
-
NSLog(@"Tempo trascorso %f", finalTime-initialTime);










19

Non ci sono commenti per questo Post
Lascia un commento