Подтвердить что ты не робот

IPhone NSNumberFormatter setFormat:

Кажется, что NSNumberFormatter's метод настройки пользовательского formatters. setFormat: недоступно на iPhone...

SO это... сбой моего приложения:

NSNumberFormatter *lengthFormatter = [[NSNumberFormatter alloc] init];
[lengthFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[lengthFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[lengthFormatter setFormat:@"#,##0.0M"];

Это случилось с кем-то еще?

Спасибо,

Dan ** ОТВЕТ НА НИЖЕ. NSNumberFormatter также имеет методы, называемые setPositiveFormat: setNegativeFormat:, которые заменяют обесцененные setFormat: **

4b9b3361

Ответ 1

Да, это задокументировано в примечании NSNumberFormatter Reference Reference (требуется вход в систему). В записке говорится:

iPhone OS. Примечание. Поддержка iPhone OS только современное поведение 10.4+. 10.0-стилевые методы и строки формата недоступны в iPhone OS.

EDIT: добавлено больше текста для поддержки последующих вопросов.

Вы можете переписать свой код на что-то подобное:

NSNumberFormatter *lengthFormatter = [[NSNumberFormatter alloc] init];
[lengthFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[lengthFormatter setPositiveSuffix:@"M"];
[lengthFormatter setNegativeSuffix:@"M"]; // assuming it can go negative

Я предлагаю взглянуть на документ, который я связал выше. Это специально для iPhone версии NSNumberFormatter, поэтому ни один из методов, которые могут привести к сбою вашего приложения, находятся там. Он также предназначен для гораздо большего использования локализованных параметров пользователя, чем исходный NSNumberFormatter. Существуют группы методов ограничения того, что появляется, и тем самым, пользуясь предпочтениями пользователя. К сожалению, уже не существует метода setFormat:.