我使用UserDefaults保存了一个日期,我的值正在保存,我试图在视图控制器中将我保存的日期显示为一个字符串,但它显示为空白。我实施错了吗?
@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()
}
答案 0 :(得分:1)
您的问题是您没有设置日期格式化程序选项。因为它会为任何日期返回一个空字符串:
尝试
let formatter = DateFormatter()
formatter.string(from: Date()) // ""
要使用本地化描述正确设置日期格式,您可以查看此answer。