我正在从日期选择器中读取数据,在本地保存,然后将标签设置为日期设置的值,但标签是空白的!请帮忙!
保存数据的代码:
NSDate *valueToSave5 = [testday date];
[[NSUserDefaults standardUserDefaults] setObject:valueToSave5 forKey:@"t1TestDay"];
[[NSUserDefaults standardUserDefaults] synchronize];
然后加载它:
NSString *t1TestDay = [[NSUserDefaults standardUserDefaults] stringForKey:@"t1TestDay"];
最后设置标签:
_TestDayValue.text = t1TestDay;
答案 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"]);