Cocoa Converti numero in NSString separato da virgole

Ad un certo punto nel tuo sviluppo Mac, iPhone o iPad potresti trovare la necessità di esprimere un numero lungo (1000000000) come una stringa separata da virgole (1.000.000.000) per semplificarti la vita sui tuoi utenti. La classe NSNumberFormatter è un ricco strumento per convertire numeri in stringhe supportando diversi tipi di valute e localizzazioni. È anche la classe perfetta da sfruttare per il nostro compito di virgola.

Prima di tutto, la classe NSNumberFormatter funziona su oggetti NSNumber, quindi è necessario convertire il nostro numero in un NSNumber se non è già presente.
NSNumber * number = [NSNumber numberWithInt: 1000000000];

NSNumber supporta anche valori in virgola mobile (numberWithFloat) e la banda regolare di altri formati numerici.

Con il nostro NSNumber in mano, possiamo andare avanti con le cose buone. NSNumberFormatter supporta il raggruppamento di cifre numeriche in gruppi di lunghezza arbitrari (vogliamo gruppi di tre) e separa i gruppi con stringhe arbitrarie (vogliamo usare una virgola (@ ",") ma potremmo usare qualsiasi stringa). Ecco il codice che rende la nostra stringa:

NSNumberFormatter * frmtr = [[NSNumberFormatter alloc] init];
[frmtr setGroupingSize: 3];
[frmtr setGroupingSeparator: @ ","];
[frmtr setUsesGroupingSeparator: YES];
NSString * commaString = [frmtr stringFromNumber: numero];

Leggi di più sui pazzi trucchi di NSNumberFormatter qui. Può anche fare cose interessanti come compitare un numero come 42 in quarantadue e gestire cifre significative.