NSNumberFormatter работает странно в iPhone 4.0 - PullRequest
0 голосов
/ 30 июня 2010

Я занимаюсь разработкой приложения, которое мне нужно для запуска приложения как в 3.0, так и в 4.0.У меня есть текстовое поле, где, когда я пытаюсь ввести числа в текстовом поле, поведение выглядит следующим образом ... IN 3.0: - Он позволяет вводить 7 цифр и 2 дробных значения (я отформатировал это так).Я отформатировал и локализовал числа вместе с разделением запятыми в зависимости от выбранной страны.Он отлично работает в 3.0 и 3.1.2

IN 4.0: - Он позволяет вам вводить только 4 цифры и после ввода 5-й цифры делает пустые текстовые поля. Когда вы вводите 5-й номер, ничего не отображаетсяи когда вы вводите 6-е число, оно начинается с 1-го числа и продолжается до тех же 4-х чисел.Пример: - когда вы вводите 1234, текстовое поле появляется - 1234, а когда вы вводите 12345, текстовое поле появляется "".и когда вы вводите 6, теперь он начинается с 6 и т. д.

Я использую метод NSNumberFormatter и numberfromstring для форматирования значений, введенных в текстовое поле.

Я не могу понять, почему это происходит так ... Пожалуйста, помогите мне ...

1 Ответ

0 голосов
/ 09 июля 2010

Я дал несколько решений по другому вопросу на этом сайте. Из того, что я вижу, NSNumberFormatter иногда имеет проблемы, когда в тексте есть пробелы или запятые (например, каждые 3 цифры). Он вернул NIL, когда нашел место. Но в другой части моего кода он работает нормально

0

У меня была такая же проблема. Я проследил это до оператора NSNumberFormatter, который не любил пробелы (или запятые) каждые 3 цифры в числах. Что является одной из причин наличия числового форматера.

NSNumber * number = [currencyFormatter numberFromString: mstring];

Это довольно стандартный код во многих примерах в Интернете, поэтому я подозреваю, что многие найдут проблему.

В любом случае, я исправил это, избавившись от пробелов

NSArray * sArray = [mstring componentsSeparatedByString: @ ""]; [mstring setString: @ ""]; // пробел в начале в порядке, предпочел бы ноль для (NSString * sElement в sArray) {[mstring appendString: sElement]; }

Тогда сработала строка currencyFormatter.

НО, в другой части моего кода, тот же оператор currencyFormatter работал без проблем. Я попытался изменить код в этой области, чтобы вызвать проблему, но не смог.

Итак, очень любопытно !!! Дерек MakeItSoSudios.com

...