日期选择器的日期未显示

时间:2017-02-27 01:47:13

标签: ios objective-c nsuserdefaults

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

保存数据的代码:

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

然后加载它:

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

最后设置标签:

_TestDayValue.text = t1TestDay;

3 个答案:

答案 0 :(得分:1)

您已将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;

注意:代码未经过测试。

答案 1 :(得分:0)

以下是适合您的更新代码。

Map<>

您将 NSDate 存储为对象到NSUserDefaults中。但是当你试图获得 String 时。所以你需要在存储时获得价值。

答案 2 :(得分:-1)

你会尝试

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