Я использую NSDateComponentsFormatter на iOS 8, и я заметил возможную ошибку в реализации метода stringFromTimeInterval:
, но я не могу сказать это точно.
Вот как я установил форматтер:
NSDateComponentsFormatter *formatter = [[NSDateComponentsFormatter alloc] init];
formatter.zeroFormattingBehavior = NSDateComponentsFormatterZeroFormattingBehaviorDefault;
formatter.allowedUnits = NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
formatter.unitsStyle = NSDateComponentsFormatterUnitsStylePositional;
Теперь, когда я передаю менее 60 секунд методу stringFromTimeInterval:
, форматтер возвращает либо 1
, либо 01
, что, очевидно, неверно, он должен возвращать что-то вроде 0:XX
.
Я также заметил, что, изменив unitsStyle
на что-либо, кроме NSDateComponentsFormatterUnitsStylePositional
, метод вернет правильную строку!
Пример:
С unitsStyle = NSDateComponentsFormatterUnitsStylePositional
:
(lldb) po [formatter stringFromTimeInterval:12]
= "1"
= > Должен возвращать "0:12"!!
С unitsStyle = NSDateComponentsFormatterUnitsStyleAbbreviated
:
(lldb) po [formatter stringFromTimeInterval:12]
= "12 s"
= > Правильно!
Это позволяет мне думать, что это ошибка в реализации Apple API, или я чего-то не хватает?