【问题标题】:How to cancel an NSTimer after 60 seconds?如何在 60 秒后取消 NSTimer?
【发布时间】:2016-09-10 15:52:35
【问题描述】:

我有一个将数据发送到 Parse 的按钮操作。按下按钮后,标题变为取消,当按下“取消”按钮时,数据将从 Parse 中删除。我想知道如何在 60 秒后使用 NSTimer 自动取消。我也设置了一个数组(var isCalling = false)

// Function called by within NSTimer in button action

func refresh(){
    self.callButtonTapped(nil)
    !isCalling
}

// Within the button action

   if error == nil {
                        //Success
                        self.isCalling = true
                        self.callButton.setTitle("Cancel", forState: UIControlState.Normal)
                        self.timer = NSTimer(timeInterval: 60.0, target: self, selector: #selector (self.refresh), userInfo: nil, repeats: false)
                    }

【问题讨论】:

    标签: swift nstimer


    【解决方案1】:

    你应该使用NSTimer.scheduledTimerWithTimeInterval,只需替换这一行:

    self.timer = NSTimer(timeInterval: 60.0, target: self, selector: #selector(self.refresh), userInfo: nil, repeats: false)
    

    斯威夫特 2

    self.timer = NSTimer.scheduledTimerWithTimeInterval(60.0, target: self, selector: #selector(self.refresh), userInfo: nil, repeats: false)
    

    斯威夫特 3、4、5

    self.timer = Timer.scheduledTimer(timeInterval: 60.0, target: self, selector: #selector(self.refresh), userInfo: nil, repeats: false)
    

    如果您想了解有关创建计时器的更多信息,请阅读NSTimer Class Reference

    【讨论】:

      猜你喜欢
      • 2016-12-16
      • 2020-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多