Swift — невозможно вызвать «-» со списком аргументов типа (NSNumber, NSTimeinterval)

Я пытаюсь получить текущее время с определенной точки от начальной точки приложения.

var startTime = NSDate.timeIntervalSinceReferenceDate()
     var currentTime: NSNumber = 0

    for var i = 0; i < 10000; i++ {
        if i == 99 {
            currentTime = NSDate.timeIntervalSinceReferenceDate()
            println(i)
        }

    }
    var elapsedTime = currentTime - startTime
    println(Double(elapsedTime))
}

и я получаю эту ошибку:

Cannot invoke '-' with an argument list of type '(@!Value NSNumber, @!Value NSTimerinerval)

Я понимаю, что это что-то с типом, который я не могу понять, какие-либо предложения?


person Roi Mulia    schedule 01.11.2014    source источник


Ответы (1)


startTime — это NSTimeInterval, а это не то же самое, что NSNumber, то есть то, что вы объявили currentTime наверху этой функции.

Измените объявление currentTime на:

 var currentTime: NSTimeInterval = 0
person Michael Dautermann    schedule 01.11.2014
comment
Ошибка Cannot invoke 'yourMethodName' with an argument list of type.... также будет отображаться при попытке вызвать метод экземпляра из метода класса. - person Sakiboy; 29.05.2015