从UserDefualts设置UILabel

时间:2017-10-01 19:56:21

标签: ios swift uilabel nsuserdefaults

我使用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()
}

1 个答案:

答案 0 :(得分:1)

您的问题是您没有设置日期格式化程序选项。因为它会为任何日期返回一个空字符串:

尝试

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

要使用本地化描述正确设置日期格式,您可以查看此answer