Articoli con Tag ‘Snippets’


10 utili snippet per Apple iPhone

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
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
NSLog(@"versione = %@", version);

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);

Continua...

Very short snippet: Apple iPhone file system

Sia sul Mac OS X che sull’iPhone OS, abbiamo la possibilità di accedere in modo semplice e diretto alle directory – più importanti – di sistema, che sono:

1
2
3
NSHomeDirectory         Returns the path to the current user’s home directory.
NSHomeDirectoryForUser  Returns the path to a given user’s home directory.
NSTemporaryDirectory  Returns the path of the temporary directory for the current user.

Continua...

Very short snippet: iPhone, numeri casuali

Se avete bisogno di generare numeri casuali in una applicazione Apple iPhone dovete mettere da parte Objective-C, in quanto non propone nessuna classe allo scopo. La soluzione viene dal C che propone: rand(), srand(), random(), srandom() e arc4random().

Continua...

Very short snippet: PHP, tagliare a parole, contando i caratteri

Come già visto in Very short snippet: PHP word cut è più gradevole spezzare un testo a “parole”, in quanto si evita di tagliare una parola. C’è comunque chi preferisce tagliare contando i caratteri, in quanto rende i “tagli” più omogenei e simili tra loro, nonostante il forte rischio di tagliare una parola, mozzandola di netto!

Continua...

Very short snippet: WordPress, migliorare il campo cerca

Oltre all’aspetto grafico del campo input del cerca di WordPress, è possibile intervenire su di esso a livello di codice in modo da renderlo un tantino interattivo quando si clicca al suo interno. Un effetto facile da realizzare permette di inserire un testo all’interno del campo cerca che scompare (e ricompare quando si esce dal campo lasciato vuoto) quando si clicca al suo interno.

Continua...

Very short snippet: WordPress, prossimamente sul vostro blog

WordPress, come quasi tutti saprete, permette di pubblicare un post “post-datato” (ottimo gioco di parole). In pratica il post viene memorizzato con una data che deve ancora arrivare. Questo permette a molti blogger di “schedulare” (programmare) la pubblicazione di post senza preoccuparsi di essere fisicamente presenti in console per la pubblicazione vera e propria. Inoltre permette di mantenere la pubblicazione di post costante anche quando siamo in vacanza.

Continua...

Very short snippet: come recuperare la categoria padre in WordPress

In WordPress le categorie possono essere organizate in una struttura “padre” “figlio”. Questo significa che un singolo post può appartenere a più categorie. Può tornare utile in alcuni casi determinare, a prescindere dai “figli”, quale sia la categoria padre di un post:

Continua...

Very short snippet: jQuery auto target blank link

Niente di nuovo, ma lo segno per ricordarmelo: come aggiungere un immagine a tutti i link che aprono una nuova pagina:

1
jQuery('a[@target=_blank]').addClass('external');

Continua...

Very short snippet: WordPress, separare le categorie in due colonne

Prendendo spunto da WordPress Hack #2 – Separare le categorie in colonne nella sidebar può tornare utile “spezzare” in due colonne la lista delle categorie di WordPress.

Continua...

Very short snippet: WordPress administrator?

Amministratore o sottoscrittore? Ecco un modo rapido per capirlo:

1
2
3
4
5
6
7
8
9
global $user_ID;
//
$capabilities = get_usermeta( $user_ID, 'wp_capabilities');
//
if ( is_array( $capabilities ) ) {
    if( $capabilities['Administrator']==1 || $capabilities['administrator']==1 ) {
        echo "Sei un amministratore";
    }
}

Continua...



Stop SOPA