您好我正在創建一個有兩個控件:一個NSSlider和一個NSTextField,不斷更新。我向NSTextField添加了一個NSDateFormatter,以便它顯示格式化爲當前時間的滑塊的當前值。滑塊的範圍爲0到86,400單位(以便用戶在24小時範圍內滑動秒)。NSUserDefaults中的double值檢索日期(Swift)
我將我的應用程序連接到共享用戶默認值控制器,以便爲用戶存儲值。
該應用程序在NSTextField中顯示正確的時間,但它總是以秒爲單位存儲該值。例如,如果用戶移動滑塊時,選擇6時32分14秒,系統將實際存儲23534.2261709793在關鍵開始時間
當用戶再次打開應用時,他們將看到6時32分14秒的預期。
我的問題是,當我想讀我的代碼變量:
我可以讀取該值作爲雙:
let value = NSUserDefaults.standardUserDefaults().objectForKey("startTimeValue") as? Double
這工作得很好,如果我嘗試投它的NSDate它將不起作用(該值將被設置爲零)。所以我認爲,在代碼中使用NSDateFormatter可以工作(因爲這是這樣的界面生成器做的工作,爲用戶看到日期):
let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = NSDateFormatterStyle.NoStyle
dateFormatter.timeStyle = NSDateFormatterStyle.ShortStyle
let date = dateFormatter.dateFromString((value?.description)!)
在前面的代碼中,我創建的日期格式,然後設置日期風格爲無(我只想做的時間),以及時間風格的簡短。但是給出value.description(「23534.2261709793」)仍然不起作用。日期仍然是零。
有什麼我做錯了嗎?
謝謝,解決問題! – gbdavid
沒問題,很高興我能幫忙 – Swinny89