从Swift中的另一个类引用@IBAction函数内的变量值

时间:2015-06-09 16:44:39

标签: ios swift class variables ibaction

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

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

在var elapsedTime中我有operationDuration(洗衣机或烘干机需要多长时间)以及稍后在@IBAction函数中按下“洗衣机”按钮我

let operationDuration == 1800

但是我收到的错误是updateTime func

  

'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'

我为不太了解道歉,但我对这个很陌生

1 个答案:

答案 0 :(得分:0)

如果这只是一个常量,你可以将它声明为全局变量。

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)
        ...
    }

    ...
}