2017-10-01 4 views
0

私はUserDefaultsを使用して日付を保存しました。私の値は保存されています。保存した日付をビューコントローラの文字列として表示しようとしていますが、それを間違って実装していますか?UserDefualtsからUILabelを設定する

@IBOutlet weak var timeLabel: UILabel! 

let formatter = DateFormatter() 

func savedate(){ 

    UserDefaults.standard.set(datePicker.date, forKey: keyDate) 

} 

func loadDate(animation: Bool) { 

    guard let loadedDate = UserDefaults.standard.object(forKey: keyDate) as? Date else { return } 

    datePicker.setDate(loadedDate, animated: true) 

    print(loadedDate) 

    let loadedValue = formatter.string(from: loadedDate) 
    timeLabel.text = loadedValue 
} 

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(true) 
    loadDate(animation: true) 
} 
@IBAction func saveTimeValue(_ sender: Any) { 
saveDate() 
} 

答えて

1

問題は、日付フォーマッタオプションを設定しなかったことです。それがあるとして、それは任意の日付に空の文字列を返します。

をあなたはこのanswerを見てみることができますローカライズされた記述を使用して、適切にあなたの日付をフォーマットするには

let formatter = DateFormatter() 
formatter.string(from: Date()) // "" 

を試してみてください。

関連する問題