Vid någon tidpunkt i din Mac, iPhone eller iPad-utveckling kan du behöva uttrycka ett långt antal (1000000000) som en kommaseparerad sträng (1 000 000 000) för att göra livet enklare för dina användare. Klassen NSNumberFormatter är ett rikt verktyg för att konvertera tal till strängar som stöder olika typer av valutor och lokaliseringar. Det är också den perfekta klassen att hävda för vår kommandotjänst.
Först och främst arbetar NSNumberFormatter-klassen på NSNumber-objekt, så vi behöver konvertera vårt nummer till en NSNumber om det inte finns där redan.NSNumber * number = [NSNumber numberWithInt: 1000000000];
NSNumber stöder också flytpunktvärden (numberWithFloat) och det vanliga antalet andra format.
Med vår NSNummer i handen kan vi fortsätta med de bra sakerna. NSNumberFormatter stöder gruppering av numeriska siffror i godtyckliga längdgrupper (vi vill ha grupper om tre) och separerar grupperna med godtyckliga strängar (vi vill använda kommatecken (@ ",") men vi kan använda någon sträng). Här är koden som gör vår sträng:
NSNumberFormatter * frmtr = [[NSNumberFormatter alloc] init];
[frmtr setGroupingSize: 3];
[frmtr setGroupingSeparator: @ ","];
[frmtr setUsesGroupingSeparator: JA];
NSString * commaString = [frmtr stringFromNumber: number];
Läs mer om NSNumberFormatters galna knep här. Det kan också göra häftiga saker som att stava ut ett nummer som 42 i fyrtioåt och hantera signifikanta siffror.