ViewController.Type没有名为的成员

Ole*_*rov 6 variables xcode nstimer swift

这只是一项简单的任务,但我遇到了麻烦.试图以不同的方式,但它失败了.

在此输入图像描述

如何使用声明的先前变量初始化NSTimer?var和nor都没有帮助.

Mar*_*n R 10

属性的初始值(在您的情况下timer:)不能依赖于类的另一个属性(在您的情况下:) interval.

因此,您必须将该分配移动timer = NSTimer(interval, ...)到该类的方法中,例如viewDidLoad.因此,timer必须将其定义为 可选隐式展开的可选项.

另请注意,Selector(...)将文字字符串作为参数,而不是方法本身.

所以这应该工作:

class ViewController: UIViewController {

    var interval : NSTimeInterval = 1.0
    var timer : NSTimer!

    func timerRedraw() {

    }

    override func viewDidLoad() {
        super.viewDidLoad()
        timer = NSTimer(timeInterval: interval, target: self, selector: Selector("timerRedraw"), userInfo: nil, repeats: true)

        // ...
    }

    // Other methods ...
}
Run Code Online (Sandbox Code Playgroud)