iphone - UIDatePicker 和 NSDate

标签 iphone cocoa-touch uidatepicker

我有一个应用程序,我使用 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/

相关文章:

ios - 如何在两个标签之间调整 UIDatePicker 的大小

ios - 在UIDatePicker中设置今天的日期而非设备日期

ios - 从 iTunes 安装 ipa 文件

ios - WKInterfaceTable添加滚动条 "flash'并从非 ScrollView 中移除滚动条

iphone - 是否有 iPhone OS4 iCal API

iphone - 使 UIImageView 立即跟随手指位置而没有任何延迟?

cocoa-touch - 如何以编程方式设置 UILabel 的背景颜色?

objective-c - 在 iOS 中的选项卡之间传递数据

javascript - 如何在 jQuery-UI Datepicker 中重新加载数据?

iphone - iOS 中的自定义形状(倒 T)边框 Uiview