Ответ 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:
.