2017-10-01 8 views
0

UserDefaults를 사용하여 날짜를 저장했는데 내 값이 저장되는 중이고 저장된 날짜를 내 View Controller에서 문자열로 표시하려하지만 비어 있습니다. 나는 그것을 잘못 구현하고 있는가?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()) // "" 

가 날짜를 포맷하려고합니다.