如何在 60 秒后取消 NSTimer?
How to cancel an NSTimer after 60 seconds?
我有一个将数据发送到 Parse 的按钮操作。按下按钮后,标题变为取消,按下 "Cancel" 按钮时,数据将从 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)
}
您应该使用 NSTimer.scheduledTimerWithTimeInterval
,只需替换此行:
self.timer = NSTimer(timeInterval: 60.0, target: self, selector: #selector(self.refresh), userInfo: nil, repeats: false)
和
Swift 2
self.timer = NSTimer.scheduledTimerWithTimeInterval(60.0, target: self, selector: #selector(self.refresh), userInfo: nil, repeats: false)
Swift 3, 4, 5
self.timer = Timer.scheduledTimer(timeInterval: 60.0, target: self, selector: #selector(self.refresh), userInfo: nil, repeats: false)
如果您想了解有关创建计时器的更多信息,请阅读 NSTimer Class Reference。
我有一个将数据发送到 Parse 的按钮操作。按下按钮后,标题变为取消,按下 "Cancel" 按钮时,数据将从 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)
}
您应该使用 NSTimer.scheduledTimerWithTimeInterval
,只需替换此行:
self.timer = NSTimer(timeInterval: 60.0, target: self, selector: #selector(self.refresh), userInfo: nil, repeats: false)
和
Swift 2
self.timer = NSTimer.scheduledTimerWithTimeInterval(60.0, target: self, selector: #selector(self.refresh), userInfo: nil, repeats: false)
Swift 3, 4, 5
self.timer = Timer.scheduledTimer(timeInterval: 60.0, target: self, selector: #selector(self.refresh), userInfo: nil, repeats: false)
如果您想了解有关创建计时器的更多信息,请阅读 NSTimer Class Reference。