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.
[code lang=”obj-c”]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\”);
}[/code]
Semplice vero? Abbiamo concluso. Se conosci un altro modo per ottenere lo stesso risultato puoi farmelo sapere con un commento.