2016-11-20 5 views
0

オブジェクトが更新されたかどうかをチェックする「Check」という関数があります。その場合、ユーザは別のView Controllerに送られます。しかし、NSTimerはそれ自体を繰り返し続けます。ユーザーが別のView Controllerに送信された後、NSTimerを停止します。セレクタが成功するまで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) 
+0

は、オブジェクトが更新されたときに通知する機能を解析していませんか? – vadian

答えて

0

viewDidDisappear関数を宣言し、それがあなたのタイマーを無効に内部。この機能は、viewControllerが消えるたびに自動的に呼び出されます。このような

何か:

override func viewDidDisappear(_ animated: Bool) { 
    super.viewDidDisappear(true) 
    self.timer.invalidate() 
} 
関連する問題