日期选择器中的日期未出现

Date from date picker not appearing

我正在从日期选择器中读取数据,将其保存在本地,然后将标签设置为日期集的值,但标签是空白的!请帮忙!

保存数据的代码:

NSDate *valueToSave5 = [testday date];
[[NSUserDefaults standardUserDefaults] setObject:valueToSave5 forKey:@"t1TestDay"];
[[NSUserDefaults standardUserDefaults] synchronize];

然后加载它:

NSString *t1TestDay = [[NSUserDefaults standardUserDefaults] stringForKey:@"t1TestDay"];

最后设置标签:

_TestDayValue.text = t1TestDay;

您将一个 NSDate 对象保存到 NSUserDefaults,因此您应该使用相同的类型将其加载回来。

试试这个来加载 NSDate:

 NSDate *t1TestDay = [[NSUserDefaults standardUserDefaults] objectForKey: @"t1TestDay"];

要在标签中显示它,您必须以某种方式将 NSDate 转换为 NSString,例如,使用 NSDateFormatter:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/yyyy"]; // 27/02/2017

NSString *stringFromDate = [formatter stringFromDate: t1TestDay];
_TestDayValue.text = stringFromDate;

注:代码未经测试

你会尝试

NSDate *valueToSave5 = [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:valueToSave5                                              forKey:@"t1TestDay"];
NSLog(@"%@",[[NSUserDefaults standardUserDefaults] valueForKey:@"t1TestDay"]);

这是适合您的更新代码。

    NSDate *valueToSave5 = [NSDate date];

    [[NSUserDefaults standardUserDefaults] setObject:valueToSave5 forKey:@"t1TestDay"];
    [[NSUserDefaults standardUserDefaults] synchronize];

    NSDate *t1TestDay = [[NSUserDefaults standardUserDefaults] objectForKey:@"t1TestDay"];
    NSLog(@"%@",t1TestDay.description);

您将 NSDate 作为 Object 存储到 NSUserDefaults 中。但是当你尝试获取 as String 时。因此,您需要在存储时获取价值。