Я пытался получить разницу во времени двух дат из этого guide. Я не уверен, что добавить аргумент dateComponents
. Когда я непосредственно передать в [.hour, .minute]
, я получаю сообщение об ошибке:Получение разницы во времени в Swift 3
Playground execution failed: error: MyPlayground.playground:10:46: error: type of expression is ambiguous without more context
let timeDifference = calendar.dateComponents([.hour, .minute], from: stopTime!, to: date!)
^~~~~~~~~~~~~~~~
`` `
Я попытался объявить его как константу первой, но не уверен, что тип. Аргумент имеет тип Set<Calendar.Component>
, но я получаю сообщение об ошибке, когда я пытаюсь сказать, что это Component
, DateComponent
, или CalendarComponent
.
`` ``
let timeFormatter = DateFormatter()
timeFormatter.dateFormat = "hh:mm a "
let time = "12:03 pm"
let stopTime = timeFormatter.date(from: time)
let date = Date()
let calendar = Calendar.current
let components:[DateComponent] = [.hour, .minute]
let timeDifference = calendar.dateComponents(components, from: stopTime!, to: date!)
Вам не нужно явно создавать 'Set'. Попробуйте заменить 'Set (components)' на '[.hour, .minute]' в вашем коде. –
OOPer
О да! Я никогда не знал, что '[]' также может обозначать 'Set'. @OOPer – Sweeper
Лучше помните, что проблема OP вызвана '!' В 'date!'. – OOPer