0

3.0 と 4.0 の両方でアプリを実行する必要があるアプリケーションを開発しています。テキストフィールドに数値を入力しようとすると、次のような動作になるテキストフィールドがあります... IN 3.0 :- 7 桁と 2 つの小数値を入力できます (このようにフォーマットしました)。選択した国に応じて、コンマ区切りとともに数字をフォーマットおよびローカライズしました。3.0 と 3.1.2 で完全に動作しています。

IN 4.0 : - 4 つの数字しか入力できず、5 桁目を入力するとテキストフィールドが空になります。5 番目の数字を入力すると何も表示されず、6 番目の数字を入力すると最初の数字から始まり、 4つの数字まで同じ。例: - 1234 を入力すると、テキストフィールドが表示されます - 1234 および 12345 を入力すると、テキストフィールドが表示されます " "。6 を入力すると、6 で始まります。

NSNumberFormatter と numberfromstring メソッドを使用して、テキストフィールドに入力された値をフォーマットしています。

なぜこれがこのように起こっているのか理解できません...助けてください...

4

1 に答える 1

0

このサイトの別の質問について、いくつかの回避策を示しました。私が見ることができることから、テキストにスペースまたはコンマが含まれている場合 (たとえば、3 桁ごと)、NSNumberFormatter に問題が発生することがあります。スペースが見つかった場合は NIL を返しました。しかし、私のコードの別の領域では、問題なく動作しているように見えました

0

私も同じ問題を抱えていました。数字の 3 桁ごとにスペース (またはコンマ) を好まない NSNumberFormatter ステートメントまで追跡しました。これは、数値フォーマッタを使用する理由の 1 つです。

NSNumber *number = [currencyFormatter numberFromString:mstring];

インターネット上の多くの例ではかなり標準的なコードであるため、多くの人が問題を見つけると思います。

とにかく、スペースを取り除くことで修正しました

NSArray *sArray = [mstring componentsSeparatedByString:@" "]; [mstring setString:@" "]; //先頭のスペースは問題ありません。(NSString *sElement in sArray) { [mstring appendString:sElement]; には nil が適しています。}

その後、 currencyFormatter 行が機能しました。

しかし、私のコードの別の領域では、同じ currencyFormatter ステートメントは問題なく機能しました。この領域のコードを変更して問題を発生させようとしましたが、できませんでした。

だから、非常に興味があります!!! Derek MakeItSoSudios.com

于 2010-07-09T19:27:38.007 に答える