ViewController.Type没有名为的成员

只是一个简单的任务,但我有麻烦了。 试图做出不同的方式,但失败了。

在这里输入图像描述

如何用已声明的以前的variables来初始化NSTimer? 既不var也不帮助。

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

因此,您必须将assigment timer = NSTimer(interval, ...)到类的一个方法中,例如移动到viewDidLoad 。 因此, timer必须被定义为一个可选隐式解包的可选项

还要注意, Selector(...)将一个文字string作为参数,而不是方法本身。

所以这应该工作:

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

尝试:

 var interval:NSTimeInterval = 1.0 var timer = NSTimer.scheduledTimerWithTimeInterval(interval, target: self, selector: "timerRedraw:", userInfo: nil, repeats: true) 

提示和希望欣赏FYI:Swift函数也应该以小写字母(即“ timerRedraw ”)开始。