我制作了一个 datePicker,我想在再次使用 datePicker 时显示上次使用的日期。我已将 datePicker 保存为用户默认值,并尝试将日期设置为我保存的日期。这是我的代码:
datepicker = [[UIDatePicker alloc] init];
datepicker.datePickerMode = UIDatePickerModeDate;
[datepicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged];
datepicker.timeZone = [NSTimeZone defaultTimeZone];
datepicker.minuteInterval = 5;
datepicker.datePickerMode = UIDatePickerModeTime;
[datepicker setDate:selectedDate];
[textfield setInputView:datepicker];
这是在价值确实发生了变化
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDate *selectedDate = [datepicker date];
[defaults setObject:selectedDate forKey:@"selectedDate"];
但我得到了错误
Use of undeclared identifier 'selectedDate'
我需要在头文件中放一些东西吗?
编辑
我尝试将它放在头文件中,但是当我按下按钮以使用 datePicker 访问视图控制器时,应用程序现在崩溃了。它因未捕获的异常而崩溃。
NSDate *selectedDate;
编辑 2
我尝试了此代码,但出现错误
NSUserDefaults *defaul = [NSUserDefaults standardUserDefaults];
if([[NSUserDefaults standardUserDefaults] objectForKey:@"selectedDate"] != nil) {
NSDate *selectedDate = [defaul dataForKey:@"selectedDate"];
在pickerDidChange中
NSUserDefaults *defaul = [NSUserDefaults standardUserDefaults];
NSDate *selectedDates = [datepicker date];
[defaul setObject:selectedDates forKey:@"selectedDate"];
错误是Incompatible pointer types initializing 'NSDate *__strong' with an expression of type 'NSData *'
编辑 3
我以为这说 dateForKey
NSDate *selectedDate = [defaul dataForKey:@"selectedDate"];
所以我把它改成
NSDate *selectedDate = [defaul objectForKey:@"selectedDate"];
现在选择器按我想要的方式工作。