2017-01-05 1 views
1

Я использую DateComponentsFormatter для достижения чего-то подобного: «1 час, 30 минут». Это мой код для этого:DateComponentsFormatter - показывает только час, описанный как минуты - ошибка?

let formatter = DateComponentsFormatter() 
formatter.unitsStyle = .short 
formatter.allowedUnits = [.hour, .minute] 
return formatter.string(from: 90)! 

Это должно вернуть 1 час и 30 минут, но мой выход «1 мин». Что-то не так с моим кодом или это ошибка iOS?

ответ

3

Метод DataComponentsFormatter string(from: TimeInterval), который вы используете, ожидает интервал времени в секундах.

Итак, вы просите форматировщик отформатировать 90 секунд, а не 90 минут.

Это позволит решить проблему:

return formatter.string(from: 90 * 60)! // 90 minutes 

Когда-либо сомнения по поводу таких вещей, читать документацию. Документация показывает следующее для описания параметров:

Временной интервал, измеренный в секундах. Значение должно быть конечным числом. Отрицательные числа обрабатываются как положительные числа при создании строки.

+0

Ох, это было легко: D Спасибо –

Смежные вопросы