2009-01-06 7 views
11

Il apparaît comme si NSNumberFormatter's méthode pour définir personnalisé formatters. setFormat: n'est pas disponible sur l'iPhone ...iPhone NSNumberFormatter setFormat:

SO ... ce crashe mon application:

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

a ce produit à quelqu'un d'autre?

Merci,

Dan ** RÉPONDUES CI-DESSOUS. NSNumberFormatter a aussi des méthodes appelées setPositiveFormat: setNegativeFormat: qui remplacent les dépréciés setFormat: **

Répondre

9

Oui, il est documenté comme une note dans le NSNumberFormatter Class Reference (nécessite une connexion). La note indique:

iPhone OS Remarque: iPhone OS prend en charge uniquement le comportement 10.4+ moderne. Les méthodes de style 10.0 et les chaînes de format ne sont pas disponibles sur iPhone OS.

EDIT: Ajout de plus de texte pour répondre aux questions de suivi.

Vous pouvez ré-écrire le vôtre à quelque chose de similaire:

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

Je suggère de jeter un oeil au document que je lien ci-dessus. C'est spécifiquement pour la version iPhone de NSNumberFormatter, donc aucune des méthodes qui provoqueront le plantage de votre application ne s'y trouve. Il est également conçu pour prendre beaucoup plus de profit des paramètres localisés de l'utilisateur que l'original NSNumberFormatter. Il existe des groupes de méthodes pour restreindre ce qui apparaît et ainsi de suite tout en profitant des préférences de l'utilisateur. Malheureusement, il n'y a plus de méthode setFormat:.