我有一个应用程序,我使用 UIDatePicker 询问用户的生日,然后将其存储在标准用户默认值中。当应用程序再次打开时,我再次获取日期,然后想要将 UIDatePicker 设置为该日期,但它崩溃并且不接受日期。它以“2009 年 6 月 8 日”的格式存储。
我需要怎么做?这就是我现在尝试的方法:
- (void)viewWillAppear:(BOOL)animated {
birthDate = [Preferences getBirthDate];
if (birthDate == nil) {
[datePicker setDate:[NSDate date] animated:NO];
}
}
我的用户偏好方法在他们的类中看起来像这样:
+ (NSDate *)getBirthDate {
// Geting via user defaults....
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"DOB"])
return [[NSUserDefaults standardUserDefaults] objectForKey:@"DOB"];
else {
return nil;
}
}
+ (BOOL)setBirthDate:(NSDate *)bDate {
//Setting via user defaults
[[NSUserDefaults standardUserDefaults] setObject:bDate forKey:@"DOB"];
return [[NSUserDefaults standardUserDefaults] synchronize];
}
提前致谢。
最佳答案
从您的代码中,您从未将 datePicker 的日期设置为生日。试试这个:
- (void)viewWillAppear:(BOOL)animated {
NSDate *birthDate = [Preferences getBirthDate];
if (birthDate == nil) {
birthDate = [NSDate date];
}
datePicker.date = birthDate;
}
关于iphone - UIDatePicker 和 NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/967757/