如何在选择器成功之前调用 NSTimer [重复]

Posted

技术标签:

【中文标题】如何在选择器成功之前调用 NSTimer [重复]【英文标题】:How to call an NSTimer until selector is successful [duplicate] 【发布时间】:2016-11-20 07:13:24 【问题描述】:

我有一个名为“检查”的函数,它检查对象是否已更新,如果是这种情况,则将用户发送到另一个视图控制器。但是,NSTimer 不断重复自己,我希望它在用户被发送到另一个视图控制器后停止。

func check()
    let current = PFUser.currentUser()?.objectForKey("username")
    let check = PFQuery(className: "Requests")
    check.whereKey("username", equalTo: current!)
    check.whereKey("requestResponded", equalTo: "True")
    check.findObjectsInBackgroundWithBlock( (objects, error) -> Void in
        if error != nil || objects == nil
            print("Request rejected.")
         else 
            for object in objects!
                let service = object["service"] as! NSValue
                print(service)
                if service == 1
                    self.performSegueWithIdentifier("detailedRequest", sender: self)
                    print("detailedRequest")
                 else 
                    self.performSegueWithIdentifier("normalRequest", sender: self)
                    print("normal")
                
            
            print("Successfully retrieved that object.")
        
    )


self.timer = NSTimer.scheduledTimerWithTimeInterval(10.0, target: self, selector: #selector(self.check), userInfo: nil, repeats: true)

【问题讨论】:

没有解析功能来通知对象何时更新? 【参考方案1】:

声明一个viewDidDisappear 函数并在其中invalidate你的计时器。每次您的viewController 消失时,都会自动调用此函数。

类似这样的:

override func viewDidDisappear(_ animated: Bool) 
    super.viewDidDisappear(true)
    self.timer.invalidate()

【讨论】:

以上是关于如何在选择器成功之前调用 NSTimer [重复]的主要内容,如果未能解决你的问题,请参考以下文章

NSTimer 在指定的时间间隔后不会调用选择器。 iOS

如何在运行选择器功能之前清除计时器?

无法识别的选择器发送到 NSTimer scheduleTimerWithTimeInterval 中的实例

NSTimer 可以采用多个选择器吗?

从 NSTimer 函数调用 UIButton @IBAction [关闭]

NSTimer 选择器中的方法无效