我試圖製作一個應用程序,告訴我們從現在到其他時間的其餘時間,直到一小時後。斯威夫特:試圖製作一個應用程序,從現在到一小時後倒計時
這是代碼,但現在它只有一個函數,通過從當前時間減少一秒來告訴我們倒計時的時間。
我在想,我還沒有確定「cnt」 的定義,這就是爲什麼我認爲它不起作用。
有人可以告訴我的原因和解決方案?
import UIKit
class ViewController: UIViewController {
var cnt : Int = 0
var timer : NSTimer!//NSTimerというデフォルト機能から引っ張る
var myInt:Int = 0
override func viewDidLoad() {
let myDate: NSDate = NSDate()
let myCalendar: NSCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
let myComponents = myCalendar.components([.Year, .Hour, .Minute, .Second],
fromDate: myDate) // myDate、すなわちNSDateから要素として引っ張り出してる
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "onUpdate:", userInfo: nil, repeats: true)//カウントダウンのインターバル
timer.fire()
var myStr: String = "\(myComponents.hour)"
myStr += "\(myComponents.minute)"
myStr += "\(myComponents.second)"
myInt = Int(myStr)! // toInt()がSwift2より無効になったようです。myInt=Str(my components,hour,minute,second)=現時刻
}
func onUpdate(timer : NSTimer){
cnt += 1//cnt+1=cnt,
let count = myInt - cnt //殘り時間=現在時刻ー現在時刻に1時間足した時刻
print(count) // println()は、Swift2よりDeprecatedになりました。
}
}
這是做錯的方法。相反,設置一個目標日期,並且每當我們想要更新我們的UI時,計算現在和當前時間之間的差異。我們無法保證每次調用'onUpdate()'之間都有1秒的時間間隔。但是,我們可以很容易地計算從現在起1小時(恰好)的時間,並且我們可以輕鬆計算從現在到未來某個時間點之間的確切時間。 – nhgrif
只需加3600(秒= 1小時)到總時間 –