2016-10-18 4 views
-1

Я просто решил скрывать свой быстрый код 2.0 до 3.0, но у меня проблема с календарем. В swift 2.0 я сделал это, чтобы вычислить разницу между двумя датами, но он больше не работает в Swift 3.0. Что я могу сделать? благодаряSwift 3 Календарь

let from = dateArray[indexPath.row] 
     let now = NSDate() 
     let components : NSCalendarUnit = [.Second, .Minute, .Hour, .Day, .WeekOfMonth] 
     let difference = NSCalendar.currentCalendar().components(components, fromDate: from!, toDate: now, options: []) 
+0

Как это не работает, какие ошибки вы получаете? –

+0

«Аргументы label» _fromDate :, toDate :, options :) «не соответствуют никаким доступным перегрузкам» « –

ответ

1

Причина много изменений синтаксиса, а затем есть функция называется .compare, что вы должны использовать вместо:

let from = dateArray[indexPath.row] 
let now = NSDate() 
let components : NSCalendar.Unit = [.second, .minute, .hour, .day, .weekOfMonth] 
let difference = NSCalendar.current.compare(from, to: now as Date, toGranularity: .day) 

Изменение toGranularity к значению вы хотите.

+0

Проблема в том, что когда я помещаю компоненты внутри« toGranularity », это вызывает ошибку, говорящую« не может скрывать значение типа »NSCalendar .Unit "для ожидаемого типа аргумента" Calendar.Components "" –

+0

Вы можете выбрать только один компонент календаря в 'toGranularity'. [Здесь] (https://developer.apple.com/reference/foundation/nsdatecomponents) - список доступных компонентов. –

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