Vediamo una semplice funzione per capire se una classica NSString in realtà contiene dei numeri e quindi deve essere interpretata come tale.

Questa snippet di codice potrebbe essere molto utile ad esempio nel caso in cui ricaviamo dati esterni che vengono incorporati come NSString e vegliamo capire a runtime di cosa si tratta.

Useremo un oggetto NSScanner che ci permette di poter scansionare la stringa inserita in tutti i suoi aspetti.

scanFloat: ritorna SI se il ricevitore trova una valida rappresentazione in virgola mobile (float), altrimenti NO.

 

isAtEnd:  ritorna YES se il ricevitore ha esaurito tutti i caratteri significativi della sua stringa, altrimentiNO.

NSScanner *scan = [NSScanner scannerWithString:@\"stringa\"]; //stringa classica

//NSScanner *scan = [NSScanner scannerWithString:@\"123\"];//solo numeri

if (![scan scanFloat:NULL] || ![scan isAtEnd]){
 NSLog(@\"è una stringa classica\");
 }
 else{
 NSLog(@\"sono tutti valori numerici\");
 }

Semplice vero? Abbiamo concluso. Se conosci un altro modo per ottenere lo stesso risultato puoi farmelo sapere con un commento.