从swIn中的timeIntervalSinceDate获取可读时间

时间:2014-11-17 23:21:29

标签: swift nsdate

我正在试图弄清楚如何从timeIntervalSinceDate获取可读的时间量。现在我有一个存储在NSUserDefaults中的密钥“punchInTime”的NSDate,但是当我想找到存储的NSDate“punchInTime”和当前时间之间的差异时,我不知道如何获得可读的时间。我有:

var totalWorkTime = NSDate.timeIntervalSinceDate(punchInTime)

我想将“totalWorkTime”插入字符串中以获得可读的时间量。

任何帮助表示赞赏!感谢。

1 个答案:

答案 0 :(得分:8)

修复语法。它应该是:

var totalWorkTime = NSDate().timeIntervalSinceDate(punchInTime)

请注意NSDate后的括号。如果您不使用括号,并尝试将totalWorkTime视为NSTimeInterval,则会收到错误Cannot invoke [operator] with an argument list of type ...

enter image description here

如果在变量赋值中指定类型,则可以获得更好的错误消息。错误为(x) -> y is not convertible to y

enter image description here

Swift是一种功能语言。在NSDate之后没有括号,则totalWorkTime不是仅仅NSTimeInterval类型的符号,而是函数的符号,它接受NSDate并返回NSTimeInterval。操场上的这种语法显示:

enter image description here

除了我上面所写的内容,zisoft对于这个问题(几乎)是正确的是正确的。另一个小例外是,这个问题是询问DoubleNSTimeInterval)类型,之前的问题是询问Int