iPhone NSNumberFormatter Установить формат:
-
03-07-2019 - |
Вопрос
Это выглядит так , как будто NSNumberFormatter's
способ настройки пользовательского formatters
. setFormat:
недоступен на iPhone...
ИТАК, это...сбой моего приложения:
NSNumberFormatter *lengthFormatter = [[NSNumberFormatter alloc] init];
[lengthFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[lengthFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[lengthFormatter setFormat:@"#,##0.0M"];
Приходило ли это в голову кому-нибудь еще?
Спасибо,
Dan
** ОТВЕТ ПРИВЕДЕН НИЖЕ. NSNumberFormatter
также имеет методы, называемые setPositiveFormat: setNegativeFormat:
которые заменяют амортизированные setFormat:
**
Решение
Да, это задокументировано в виде примечания в Ссылка на класс NSNumberFormatter (требуется войти в систему).В записке говорится:
Примечание к операционной системе iPhone:iPhone OS поддерживает только современное поведение 10.4+.Методы в стиле 10.0 и строки формата недоступны в iPhone OS.
Редактировать:Добавлено больше текста для поддержки последующих вопросов.
Вы могли бы переписать свой на что-то подобное:
NSNumberFormatter *lengthFormatter = [[NSNumberFormatter alloc] init];
[lengthFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[lengthFormatter setPositiveSuffix:@"M"];
[lengthFormatter setNegativeSuffix:@"M"]; // assuming it can go negative
Я предлагаю взглянуть на документ, на который я ссылался выше.Это специально для версии NSNumberFormatter для iPhone, поэтому там нет ни одного из методов, которые приведут к сбою вашего приложения.Он также разработан таким образом, чтобы использовать гораздо больше преимуществ локализованных настроек пользователя, чем исходный NSNumberFormatter.Существуют группы методов для ограничения того, что отображается, и тому подобное, при этом все еще используя предпочтения пользователя.К сожалению, больше не существует setFormat:
способ.