为变量分配函数而不是值

时间:2016-02-17 17:49:35

标签: swift function

我在swift中有以下代码来检查执行时间:

let q = NSDate();
... // Some code here
let r = NSDate.timeIntervalSinceDate(q);
print("Execution time is \(r)");

每次执行时,都会打印“执行时间为(功能)”。 我甚至确认r的类型是(NSDate) -> NSTimeInterval。如何设置r等于NSTimeInterval本身?

1 个答案:

答案 0 :(得分:3)

您遇到的问题是NSDate.timeIntervalSinceDate是NSDate类的方法。您正在从该方法创建一个已填充变量的函数对象,但仍需要在对象上调用它。

简单的解决方法如下:

    let q = NSDate()
    // other code here
    let r = NSDate().timeIntervalSinceDate(q)
    print("Execution time is \(r)")

另一种选择是这样做:

    let q = NSDate()
    // other code here
    let r = q.timeIntervalSinceNow
    print("Execution time is \(r)")