NSNumberFormatter не возвращает nilSymbol по нулевому значению. Что мне не хватает?

iOS 4+; когда я передаю значение nil в свой NSNumberFormatter, я хочу, чтобы в конце был установлен символ nil (NSString *). Он работает для символа «нуль», но не для символа nil. Я пробовал много разных настроек конфигурации, таких как поведение, группировка и т. Д.

fmtr = [[NSNumberFormatter alloc] init]; [fmtr setNumberStyle:NSNumberFormatterDecimalStyle]; [fmtr setFormatterBehavior:NSNumberFormatterBehaviorDefault]; [fmtr setUsesGroupingSeparator:NO]; [fmtr setNilSymbol:@"###"]; [fmtr setZeroSymbol:@"0000"]; NSLog(@"[fmtr nilSymbol]=>>%@<<", [fmtr nilSymbol]); NSLog(@"[fmtr stringFromNumber:nil]=>>%@<< this should be '###", [fmtr stringFromNumber:nil] ); NSLog(@"[fmtr stringFromNumber:0]=>>%@<<", [fmtr stringFromNumber:[NSNumber numberWithInt:0]] ); NSLog(@"[fmtr stringFromNumber:null]=>>%@<<", [fmtr stringFromNumber:NULL] ); NSLog(@"[fmtr numberFromString:nil]=%@", [fmtr numberFromString:nil] ); NSLog(@"[fmtr numberFromString:@\"0\"]=%@", [fmtr numberFromString:@"0"] ); NSLog(@"[fmtr numberFromString:NULL]=%@", [fmtr numberFromString:NULL] ); 

Вот результат теста:

[fmtr nilSymbol] = >> ### <<

[fmtr stringFromNumber: nil] = >> (null) << this should be ###

[fmtr stringFromNumber: 0] = >> 0000 <<

[fmtr stringFromNumber: null] = >> (null) <<

[fmtr numberFromString: nil] = (null)

[fmtr numberFromString: @ "0"] = 0

[fmtr numberFromString: NULL] = (null)

One Solution collect form web for “NSNumberFormatter не возвращает nilSymbol по нулевому значению. Что мне не хватает?”

Я не уверен, почему это не работает при использовании numberFromString, но я сам это испытал, и он работает, если вместо этого вы используете «stringForObjectValue». (замените все «stringFromNumber» на «stringForObjectValue»)

Изменить: нашел ответ

В этом блоге: http://www.nsformatter.com/blog/2010/6/9/nsnumberformatter.html

он говорит:

  • (NSString *) stringFromNumber: (номер NSNumber *);

Это удобный метод. Этот метод возвращает nil, если число равно nil, в противном случае он вызывает -stringForObjectValue :. Поэтому он ведет себя как -stringForObjectValue :, за исключением того, что он никогда не возвращает -nilSymbol

Кажется, что цель метода (не использовать nilSymbol)

  • Ручной язык с правильным NumberFormatter и localizedStringWithFormat
  • NSNumberFormatter maximumFractionDigits и maximumSignificantDigits ошибка
  • Синглтон и NSNumberFormatter в Swift
  • NSNumber с запятыми
  • как перемещать курсор в UITextField после установки его значения
  • NSNumberFormatter numberFromString возвращает null
  • Как добавить запятую и десятичные знаки в мой UITextField динамически?
  • NSNumberFormatter paddingPosition не работает
  • Пользовательский Swift NSNumberFormatterStyle
  • вопрос с NSNumber в быстром 3
  • Преобразование длинного NSString в NSNumber
  • Как ввести формат валюты в текстовое поле (справа налево) с помощью Swift?
  • Interesting Posts

    неожиданно нашел нуль, разворачивая Необязательное значение keyboardWillShow

    Местоположение архива Xcodebuild

    Как определить, является ли целое число кратным 10 (Xcode)?

    Использование общего кода Int в коде – используйте 32 или 64 бит Int в Core Data iOS?

    Как читать журналы сбоев iOS 4?

    Когда свойство только для чтения, оно является копией и неатомным бессмысленным?

    Код для проверки iOS 32-бит или 64-бит?

    получение контрольной точки для получения данных адресной книги

    Конвертировать поток JSON в NSDictionary

    Сохранение записи CloudKit «Не аутентифицировано» (9/1002) «« Для этого запроса требуется аутентифицированная учетная запись »,

    Область видимости UISearchBar не отображается в iOS 7?

    Проблема со скоростью вращения jQuery

    Цвет настройки SKSpriteNode с UIColor

    OCMock: Измерительные протоколы с исключением дополнительных методов

    Если я доволен тем, что OS X работает на VMware, действительно ли мне нужно покупать Mac для разработки в App Store?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.