如何在 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