Uso del blocco @try

In tutte quelle situazioni in cui possono verificarsi potenziali errori, il linguaggio obiettive-c ci mette a disposizione una struttura di controllo che permette di “provare” il codice. Si tratta del blocco @try, seguito da @catch (eseguito solo se viene sollevata una eccezione) e da @finally (eseguito in ogni caso).

1
2
3
4
5
6
7
8
9
10
11
12
NSString* test = [NSString stringWithString:@"ss"];
 
 @try {
    [test characterAtIndex:6];
 
 }
 @catch (NSException * e) {
    NSLog(@"Exception: %@", e);
 }
 @finally {
    NSLog(@"finally");
 }
NSString* test = [NSString stringWithString:@"ss"];

 @try {
    [test characterAtIndex:6];

 }
 @catch (NSException * e) {
    NSLog(@"Exception: %@", e);
 }
 @finally {
    NSLog(@"finally");
 }

Bisogna ricordarsi di disattivare eventuali breakpoint settari su exception perché il programma si bloccherebbe (in pausa) anche se questo codice è pensato proprio per evitare interruzioni.

Generare un numero casuale

La generazione di un numero casuale, utile soprattutto nei giochi, è possibile tramite ad esempio la funzione arc4random(). Ecco come funziona:

Eseguendo il modulo n del valore restituito si determina l’ampiezza n dell’intervallo dei numeri casuali generati. Quindi ad esempio:

1
int x = arc4random() % 100;
int x = arc4random() % 100;

genera un numero casuale compreso fra 0 e 99.

Mentre aggiungere un valore intero determina ovviamente il valore iniziale. Quindi ad esempio:

1
int y = (arc4random() % 501) + 500;
int y = (arc4random() % 501) + 500;

genera un numero casuale compreso fra 500 e 1000.

Se quindi vogliamo ottenere un valore casuale compreso fra min e max possiamo scrivere

1
int z = (arc4random() % (max - min + 1) ) + min;
int z = (arc4random() % (max - min + 1) ) + min;

 

Tutorial per gli acquisti in-app

Gli acquisti in app sono diventati ormai fondamentali per monetizzare il lavoro svolto nello sviluppare un’app. L’app gratuita attira nuovi utenti e fornire loro nuove funzionalità tramite gli in-app purchases li trasforma in clienti.

Per implementare questa importante funzionalità ecco alcuni link utilissimi:

 

 

Verificare che una stringa contenta un valore numerico

Per verifica se una stringa rappresenta correttamente un numero si può usare la classe NSNumberFormatter. Infatti, avendo inizializzato un numberFormatter, si può usare il metodo

1
[numberFormatter numberFromString:string]
[numberFormatter numberFromString:string]

che restituisce nil se la NSString non è convertibile in numero.