-1 nsuserdefaults datapicker swift
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm "
let selectedDate = dateFormatter.string(from: sender.date)
UserDefaults.standard.set(selectedDate, forKey: "date")
print(selectedDate)
\\method to reload the selected time inside the viewdidLoad func
let selectedDate = UserDefaults.standard.object(forKey: "date")
example.setDate(selectedDate as! Date ?? Date(), animated: false)
Run Code Online (Sandbox Code Playgroud)
但是当我运行应用程序时,它会返回此错误
无法将类型'__NSCFString'(0x108e8b4f0)的值转换为'NSDate'(0x108e8c0d0).
我转换为HH:mm因为我想只记录这种格式的时间,但我不知道我将如何处理它
安德烈你保存字符串值UserDefaults并尝试NSDate从字符串设置.如果您只关心时间,那么我的建议是保存日期,UserDefaults并time根据您的要求获得格式.
以下是保存和检索时间的步骤:
保存:
func datePickerChanged(_ sender: UIDatePicker){
UserDefaults.standard.set(sender.date, forKey: "date")
}
Run Code Online (Sandbox Code Playgroud)
用于检索:
func getTime(){
let date = UserDefaults.standard.object(forKey: "date") as! Date
let dateFormatter = DateFormatter()
dateFormatter.locale = NSLocale.current
dateFormatter.timeZone = NSTimeZone(name: "UTC") as TimeZone! //Set your own time zone here.
dateFormatter.dateFormat = "HH:mm"
print(dateFormatter.string(from: date as Date))
example.setDate(date, animated: false)
}
Run Code Online (Sandbox Code Playgroud)
希望它能帮到你,节省你的时间.
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |