Ios 保存上次日期选择器选择

Ios 保存上次日期选择器选择,ios,swift,nsuserdefaults,uidatepicker,Ios,Swift,Nsuserdefaults,Uidatepicker,我有一个带有UIDatePicker的项目 如果我更改我的UIDatePicker值,例如在9:23时,当我重新启动应用程序时,我希望该值仍然是9:23,而不是默认值。我该怎么做 这是我的密码: @IBOutlet var myDatePicker: UIDatePicker! var datePicker = /* Get Your Date Picker from somewhere */ // Store value using User Defaults let currentDate

我有一个带有
UIDatePicker
的项目

如果我更改我的
UIDatePicker
值,例如在9:23时,当我重新启动应用程序时,我希望该值仍然是9:23,而不是默认值。我该怎么做

这是我的密码:

@IBOutlet var myDatePicker: UIDatePicker!
var datePicker = /* Get Your Date Picker from somewhere */

// Store value using User Defaults
let currentDate = datePicker.date
NSUserDefaults.standardUserDefaults().setObject(currentDate, forKey: "Current-Date")

// Retrieve Value using User Defaults
if let date = NSUserDefaults.standardUserDefaults().objectForKey("Current- Date") as? NSDate {
   datePicker.setDate(date, animated: true)
}

我尝试了标准的
userDefaults
方法,但没有成功。

您的密钥与的“当前日期”不同“当前日期”。这就是它不起作用的原因:

    NSUserDefaults.standardUserDefaults().setObject(currentDate, forKey: "Current-Date")
...
    if let date = NSUserDefaults.standardUserDefaults().objectForKey("Current- Date") as? NSDate {
使用常量可避免此错误:

let keyData = "Current-Date"
    NSUserDefaults.standardUserDefaults().setObject(currentDate, forKey: keyData)
...
    if let date = NSUserDefaults.standardUserDefaults().objectForKey(keyData) as? NSDate {

嗨,我为你准备了一些剪贴代码:

     import UIKit

        class ViewController: UIViewController {

// I have declared const key property to avoid mistakes (typo)
            let dateKey = "Current-Date"

            @IBOutlet weak var datePicker: UIDatePicker!
            override func viewDidLoad() {
                super.viewDidLoad()
            }

            override func viewDidAppear(animated: Bool) {
                super.viewDidAppear(animated)

    // This line load previous state when view controller did appear
                loadDate(true)
            }

            @IBAction func savePickerData(sender: AnyObject) {
                // When user taps into 'savePickerData' button picker state is saved
                saveDate()
            }

            func saveDate() {
                NSUserDefaults.standardUserDefaults().setObject(datePicker.date, forKey:dateKey)
            }

            func loadDate(animation: Bool) {
                guard let loadedDate = NSUserDefaults.standardUserDefaults().objectForKey(dateKey) as? NSDate else { return }

                datePicker.setDate(loadedDate, animated: animation)
            }

        }

应该可以正常工作:)

让currentDate=myDatePicker.datemyDatePicker.setDate(日期,动画:true)键“当前日期”也有问题“Current-Date”delete var datePicker=/*从某处获取日期选择器*/顺便说一句,您应该在视图中加载/设置日期选择器日期