我正在尝试将这个答案中的Objective代码和这个答案中的更正转换为Swift:
var theTimeInterval = NSTimeInterval()
var calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
var date1 = NSDate()
var date2 = NSDate(timeInterval: theTimeInterval, sinceDate: date1)
var unitFlags = NSCalendarUnit(UInt.max)
var info = calendar.components(unitFlags, fromDate:date1, toDate:date2, options:0)然而,在最后一行,Xcode给了我一个令人费解的错误:
调用中的额外参数'toDate‘
我通过命令单击NSCalendar来查看它的代码,我使用的函数签名似乎与它的components方法完全匹配。那我做错什么了?
发布于 2019-06-24 13:59:40
我相信这是Swift 4的正确实现。
var theTimeInterval = TimeInterval()
var calendar = Calendar(identifier: .gregorian)
var date1 = Date()
var date2 = Date(timeInterval: theTimeInterval, since: date1)
//NSCalendarUnit from objc are Calendar.Component in swift
var components: Set<Calendar.Component> = [.hour, .minute, .second]
var info = calendar.dateComponents(components,
from: date1, to: date2)发布于 2014-10-10 08:28:16
这对我来说很管用:
var info = calendar.components(unitFlags, fromDate: date1, toDate: date2, options: NSCalendarOptions(0))你必须写NSCalentarOptions枚举。
https://stackoverflow.com/questions/25245445
复制相似问题