2015-10-29 49 views
-2

我有一個計時器,倒計時3.我觸發viewDidLoad方法中的計時器,我也在查詢來自Parse的時間變量。爲什麼我的計時器每秒鐘減3?

這裏是我的代碼,其中計時功能是:

var createdAt = object.createdAt 
      if createdAt != nil { 

       let calendar = NSCalendar.currentCalendar() 
       let comps = calendar.components([.Hour, .Minute, .Second], fromDate: createdAt as NSDate!) 
       let hour = comps.hour * 3600 
       let minute = comps.minute * 60 
       let seconds = comps.second 


       self.timerInt.append(hour + minute + seconds) 

       var timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("countDown"), userInfo: nil, repeats: true) 


      } 

      } 

     } 


    }) 
    self.tableView.reloadData() 

} 

我試圖改變self.tableView.reloadData()周圍,因爲我假定這是一個reloadData問題。

這裏是我的倒計時功能:

 func countDown() { 
     //timerInt is an array where I'm storing the Int values. 
     for i in 0 ..< timerInt.count { 

      let hours = timerInt[i]/3600 
      let minsec = timerInt[i] % 3600 
      let minutes = minsec/60 
      let seconds = minsec % 60 
     print(String(format: "%02d:%02d:%02d", hours, minutes, seconds)) 
      timerInt[i]-- 

     } 
      self.tableView.reloadData() 
} 

我想這一切都在的cellForRowAtIndexPath方法發生..

這裏是的cellForRowAtIndexPath方法:

let hours = timerInt[indexPath.row]/3600 
    let minsec = timerInt[indexPath.row] % 3600 
    let minutes = minsec/60 
    let seconds = minsec % 60 

    //defining the time 

    myCell.secondLabel.text = String(format: "%02d:%02d:%02d", hours, minutes, seconds) 

      //formatting the time 


    return myCell 

任何什麼使它觸發3x的想法?

回答

-1

愚蠢的我。意識到如果我查詢3個對象解析秒數倒數3.如果我查詢4,則秒數倒數減去4.

問題是我觸發定時器方法的地方:

var timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("countDown"), userInfo: nil, repeats: true)

我需要之外觸發它我查詢其中。因爲如果它在那裏被觸發,那麼它就會被我查詢的對象數量觸發。

現在我把timer變量這樣,它的工作原理:):

 var createdAt = object.createdAt 
      if createdAt != nil { 

       let calendar = NSCalendar.currentCalendar() 
       let comps = calendar.components([.Hour, .Minute, .Second], fromDate: createdAt as NSDate!) 
       let hour = comps.hour * 3600 
       let minute = comps.minute * 60 
       let seconds = comps.second 


       self.timerInt.append(hour + minute + seconds) 


      } 


      } 

     } 

     var timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("countDown"), userInfo: nil, repeats: true) 

    }) 
    self.tableView.reloadData() 

} 

注意,}是從我viewDidLoad中內的其他關閉。

相關問題