ViewController.Type没有名为的成员这只是一项简单的任务,但我遇到了麻烦。试图以不同的方式,但它失败了。如何使用声明的先前变量初始化NSTimer?var和nor都没有帮助。
2 回答
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
属性的初始值(在您的情况下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 ...}
汪汪一只猫
TA贡献1898条经验 获得超8个赞
尝试:
var interval:NSTimeInterval = 1.0var timer = NSTimer.scheduledTimerWithTimeInterval(interval, target: self, selector: "timerRedraw:", userInfo: nil, repeats: true)
pro-tip并希望得到赞赏的FYI:Swift函数也应该以小写字母(即“ timerRedraw
”)开头。
添加回答
举报
0/150
提交
取消