ViewController.Type没有名为的成员

ViewController.Type没有名为的成员

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

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


拉莫斯之舞
浏览 564回答 2
2回答

一只萌萌小番薯

属性的初始值(在您的情况下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 ...}

汪汪一只猫

尝试:var interval:NSTimeInterval = 1.0var timer = NSTimer.scheduledTimerWithTimeInterval(interval, target: self, selector: "timerRedraw:", userInfo: nil, repeats: true)pro-tip并希望得到赞赏的FYI:Swift函数也应该以小写字母(即“ timerRedraw”)开头。
打开App,查看更多内容
随时随地看视频慕课网APP