在Swift中创建执行计时器

时间:2015-04-08 09:50:04

标签: objective-c cocoa swift

请参阅下面的这个问题

How to log a method's execution time exactly in milliseconds?

我将代码转换为swift,就像这样

//OBjective-C
//#define TICK   NSDate *startTime = [NSDate date]
//#define TOCK   NSLog(@"Time: %f", -[startTime timeIntervalSinceNow])

class AppDelegate: NSObject, NSApplicationDelegate {

var TIMER = NSDate()

@IBOutlet weak var window: NSWindow!

func TICK()
{
    TIMER = NSDate()
}

func TOCK(){

    println("\(-TIMER.timeIntervalSinceNow)")
}



func applicationDidFinishLaunching(aNotification: NSNotification) {
    // Insert code here to initialize your application
    TICK()
    TOCK()
}

Swift中的时间:3.40343e-05 而Objective-C:0.000009 为什么斯威夫特这么慢?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您想在代码中的任何地方使用并避免使用全局变量,那么您可以使用实用程序类中的静态函数执行相同的方法(我称之为Debug类):

fun doh x y z = z (x y ) (y + 1);
val doh = fn : (int -> 'a) -> int -> ('a -> int -> 'b) -> 'b

然后使用:

class Debug {

private static var tickTimestamp: Date = Date()

static func tick() {
    print("TICK.")
    tickTimestamp = Date()
}

static func tock() {
    print("TOCK. Elapsed Time: \(Date().timeIntervalSince(tickTimestamp))")
}

}