我正在尝试在Swift中制作一个洗衣计时器应用程序,其中洗衣机和烘干机的开始时间不同,倒计时为0。

func updateTime() {
    ...
    var elapsedTime: NSTimeInterval = operationDuration - (currentTime - startTime)
    ...
   }


在var elapsedTime中,我具有operationDuration(洗衣机或干衣机需要多长时间),后来在@IBAction函数中用于按下“洗衣机”按钮

let operationDuration == 1800


但是我在更新时间功能上遇到错误


  未定义“ operationDuration”。


我怎样才能做到这一点?提前致谢。

编辑:

这是我的washerButtonPress代码:

@IBAction func washerButtonPress(sender: AnyObject) {

        // TODO: start 30 minute countdown

        if !timer.valid {

            var operationDuration = 1800

            let aSelector:Selector = "updateTime"
            timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target:    self, selector: aSelector, userInfo: nil, repeats: true)
            startTime = NSDate.timeIntervalSinceReferenceDate()
        }


以及我如何在我的func updateTime()中调用它

var elapsedTime: NSTimeInterval = washerButtonPress.operationDuration - (currentTime - startTime)


它返回'(AnyObject) -> ()' does not have a member named 'operationDuration'

很抱歉,我所知不多,但我对此很陌生

最佳答案

如果这仅仅是一个常量,则可以将其声明为全局变量。

let kOperationDuration = 1800

class Washer {
    ...

    @IBAction func washerButtonPress(sender: AnyObject) {
        if !timer.valid {
            let aSelector:Selector = "updateTime"
            timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target:    self, selector: aSelector, userInfo: nil, repeats: true)
            startTime = NSDate.timeIntervalSinceReferenceDate()
        }
    }

    ...
}


然后,在Dryer类中,您可以引用该常数。

class Dryer {
    ...

    func updateTime() {
        ...
        var elapsedTime: NSTimeInterval = kOperationDuration - (currentTime - startTime)
        ...
    }

    ...
}

10-07 22:31