为了账号安全,请及时绑定邮箱和手机立即绑定

ViewController.Type没有名为的成员

ViewController.Type没有名为的成员

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


查看完整回答
反对 回复 2019-08-23
?
汪汪一只猫

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”)开头。


查看完整回答
反对 回复 2019-08-23
  • 2 回答
  • 0 关注
  • 525 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信