Вопрос

Это выглядит так , как будто 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: способ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top