这是我的代码。 但是一个错误说,不能与类型的参数列表调用dateComponent ...
let fromDate = NSDate(timeIntervalSince1970: TimeInterval(tweetsArray[indexPath.row].timestamp)!)
let toDate = NSDate()
let components : NSCalendar.Unit = [.second, .minute, .hour, .day, .weekOfMonth]
let differenceOfDate = NSCalendar.current.dateComponents(components, from: fromDate, to: toDate)
在夫特3, NSCalendar.current
返回一个Calendar
,这对于基金会夫特值包装类型NSCalendar
类型。
dateComponents()
需要一个Set<Calendar.Component>
和两个Date
参数。 Date
是雨燕值包装类型NSDate
。
当现有的基础上的API被导入到斯威夫特的类型自动桥接,那为什么NSCalendar.current
返回一个Calender
,而不是NSCalendar
。
值类型夫特3是优选的,因为它们提供适当的值语义和使用let
和var
而不是可变和不可变的变体。
全部放在一起:
let fromDate = Date(timeIntervalSince1970: ...)
let toDate = Date()
let components = Set<Calendar.Component>([.second, .minute, .hour, .day, .weekOfMonth])
let differenceOfDate = Calendar.current.dateComponents(components, from: fromDate, to: toDate)
有关夫特3值的包装类型及其对应的基础类型的详细信息,请参见SE-0069可变性和地基值类型 ,或在部分“桥连类型” 与可可框架工作在“使用夫特与可可和Objective-C”参考。