自定义类中的计时器仅在init方法Swift中工作

时间:2018-03-16 07:36:44

标签: swift4

我想在我的自定义类中获取一个计时器,但它只在init方法中工作。所以理想情况下我想实现:

class MyClass:NSObject{

    private var timer:Timer = Timer()

    //WORKING
    override init() {
    super.init()

    self.timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true, block: { (_) in
        print("\(self.logClassName): IN CLOSURE 1 \(self.recList.count)")

    })
    }
    //NOT WORKING
    func startTimer(){

        self.timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true, block: { (_) in
        print("\(self.logClassName): IN CLOSURE 2 \(self.recList.count)")

        })
    }
}

代码显示我初始化Timer两次,但这只是为了解释。我想只使用函数startTimer()

1 个答案:

答案 0 :(得分:0)

将计时器声明为可选

private var timer : Timer?

func startTimer()之前有一个右大括号。