Swift 为什么带有两个`NSDate`对象的`timeIntervalSince()`需要`as-Date`?

Swift 为什么带有两个`NSDate`对象的`timeIntervalSince()`需要`as-Date`?,swift,date,nsdate,nstimeinterval,Swift,Date,Nsdate,Nstimeinterval,我有一个NSManagedObject对象,其中包含: @NSManaged public var timestamp: NSDate 我需要其中两个之间的时间间隔,因此我实现了: let interval = next.timestamp.timeIntervalSince(current.timestamp) 为什么这会导致以下错误 'NSDate' is not implicitly convertible to 'Date'; did you mean to use 'as' to

我有一个
NSManagedObject
对象,其中包含:

@NSManaged public var timestamp: NSDate
我需要其中两个之间的时间间隔,因此我实现了:

let interval = next.timestamp.timeIntervalSince(current.timestamp)
为什么这会导致以下错误

'NSDate' is not implicitly convertible to 'Date'; did you mean to use
'as' to explicitly convert?
我很惊讶,因为
next
current
都属于
NSDate
类型,而
timeIntervalSince()
是一种
NSDate
方法

按照错误中的建议很容易修复,但我想了解这里发生了什么:

let interval = next.timestamp.timeIntervalSince(current.timestamp as Date)
如果有问题,请在Swift 3.0上查看。

参考:

对基础框架的快速覆盖提供日期 结构,它连接到NSDate类。日期值类型 提供与NSDate引用类型相同的功能 这两种代码可以在与交互的Swift代码中互换使用 Objective-C API。这种行为类似于Swift bridges 标准字符串、数字和集合类型与其对应的 基础类。

如果选中
timeIntervalSince
方法签名,则它是
func timeIntervalSince(\uuotherdate:Date)->TimeInterval
,请注意,
anotherDate
日期类型是
Date
(不再是
NSDate

<>对于新的值类型、可更改性和基础值类型的检查,有一组新的值类型,如:NStaseNStutabelDATABOS>数据、NSIXDEXPATH > >索引路径、N通知No>通知……/P>