2009-01-06 2 views
11

Es scheint, als ob NSNumberFormatter's Methode für die Einstellung benutzerdefinierte formatters. setFormat: ist nicht auf dem iPhone verfügbar ...iPhone NSNumberFormatter setFormat:

dieses SO ... stürzt meine App:

NSNumberFormatter *lengthFormatter = [[NSNumberFormatter alloc] init]; 
[lengthFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4]; 
[lengthFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
[lengthFormatter setFormat:@"#,##0.0M"]; 

Hat dies jemand anders aufgetreten?

Danke,

Dan ** UNTEN ZU ANTWORTEN. NSNumberFormatter hat auch setPositiveFormat: setNegativeFormat: genannt Methoden, die die abgeschrieben setFormat: **

Antwort

9

Ja, es ist dokumentiert als Notiz in den NSNumberFormatter Class Reference (Anmeldung erforderlich) ersetzen. Der Hinweis sagt:

iPhone OS Hinweis: iPhone OS unterstützt nur die moderne 10.4 + Verhalten. 10.0-Methoden und Formatzeichenfolgen sind auf iPhone OS nicht verfügbar.

EDIT: mehr Text hinzugefügt Folgefragen zu unterstützen.

Sie könnten neu schreiben Ihnen, um etwas ähnlich:

NSNumberFormatter *lengthFormatter = [[NSNumberFormatter alloc] init]; 
[lengthFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
[lengthFormatter setPositiveSuffix:@"M"]; 
[lengthFormatter setNegativeSuffix:@"M"]; // assuming it can go negative 

Ich schlage vor, einen Blick auf das Dokument nehmen, die ich oben verlinkt. Es ist speziell für die iPhone-Version von NSNumberFormatter, also keine der Methoden, die zum Absturz Ihrer Anwendung führen. Es wurde auch entwickelt, um die lokalisierten Einstellungen des Benutzers weit mehr zu nutzen als der ursprüngliche NSNumberFormatter. Es gibt Gruppen von Methoden, um das, was sich zeigt, einzuschränken und dies unter Ausnutzung der Präferenzen des Benutzers. Leider gibt es keine setFormat: Methode mehr.