2010-06-30 2 views
0

Je développe une application que j'ai besoin d'exécuter mon application à la fois dans 3.0 et 4.0. J'ai un champ de texte où quand j'essaie d'entrer des nombres dans le champ de texte le comportement est comme ceci ... DANS 3.0: - Il permet d'entrer 7 chiffres et 2 valeurs fractionnaires (je l'ai formaté comme ceci). J'ai formaté et localisé les nombres ainsi que les séparations de virgules en fonction du pays sélectionné. Il fonctionne parfaitement dans les versions 3.0 et 3.1.2NSNumberFormatter fonctionnant bizarre dans l'iPhone 4.0

IN 4.0: - Il vous permet d'entrer seulement 4 chiffres et après avoir saisi le 5ème chiffre, il vide les champs de texte Lorsque vous entrez le 6ème numéro, il commence à partir du 1er numéro et continue jusqu'à 4 numéros. ex: - lorsque vous entrez 1234, le champ de texte apparaît - 1234 et lorsque vous entrez 12345, le champ de texte apparaît "". et quand vous entrez 6 maintenant il commence par 6 et ainsi de suite ..

J'utilise la méthode NSNumberFormatter et numberfromstring pour formater les valeurs entrées dans le champ de texte.

Je ne suis pas en mesure de comprendre pourquoi cela se passe comme ça ... S'il vous plaît aidez-moi ...

Répondre

0

je lui ai donné un peu de travail autour d'une autre question dans ce site. De ce que je peux voir le NSNumberFormatter a parfois des problèmes quand le texte a des espaces ou des virgules (par exemple tous les 3 chiffres). Il a retourné NIL quand il a trouvé un espace. Mais, dans un autre domaine de mon code, il semble fonctionner OK

J'ai eu le même problème. Je l'ai suivi jusqu'à une instruction NSNumberFormatter qui n'aimait pas les espaces (ou les virgules) tous les 3 chiffres dans les nombres. Ce qui est l'une des raisons pour avoir un formateur de nombres.

NSNumber * number = [currencyFormatter numberFromString: mstring];

Il s'agit d'un code assez standard dans de nombreux exemples sur Internet, donc je pense que beaucoup vont trouver le problème.

Quoi qu'il en soit, je l'ai fixé en se débarrassant des espaces

NSArray * Sarray = [mstring componentsSeparatedByString: @ » « ]; [mstring setString: @ ""]; // l'espace au début est OK, préférerait nil pour (NSString * sElement dans sArray) {[mstring appendString: sElement]; }

Ensuite, la ligne currencyFormatter a fonctionné. MAIS, dans une autre zone de mon code, cette même déclaration currencyFormatter a fonctionné sans problème. J'ai essayé de changer le code dans la zone pour causer le problème, mais je ne pouvais pas.

Donc, très curieux !!! Derek MakeItSoSudios.com

Questions connexes