这里有一个菜鸟。我无法通过阅读这些电路板来解决我的问题 - 任何人都可以发现这个问题:
我有一个标签,我想每天更新,我尝试使用NSUserDefaults。
-(id)init{
...
...
NSDate *date = [NSDate date];
NSString *todaysDate = [NSString stringWithFormat:@"%@", date];
[self createLabel:todaysDate];
}
-(void)createLabel:(NSString*)theDate{
if([[NSUserDefaults standardUserDefaults] objectForKey:theDate] == nil){
myLabel.text = [someOtherClass getAppropriateString];
[[NSUserDefaults standardUserDefaults] setObject:[mylabel text] forKey:theDate];
}else{
myLabel.text = [[NSUserDefaults standardUserDefaults] stringForKey:theDate]
}
}
编辑:
感谢您的帮助。在写这个问题时,我实际上意识到了我的错误!
刚做了快速测试。
如果有人感兴趣:今天的日期字符串包括分钟和秒,这意味着每次我运行应用程序并将其保存为NSUserDefault时,都会有所不同。
我添加了日期格式化程序,现在可以使用了。
答案 0 :(得分:1)
您可能忘记了synchronize
您的更改。在[[NSUserDefaults] synchronize];
行
setObject:forKey:
行
答案 1 :(得分:0)
试试这个
-(void)createLabel:(NSString*)theDate
{
if([[NSUserDefaults standardUserDefaults] objectForKey:theDate] == nil){
myLabel.text = [someOtherClass getAppropriateString];
[[NSUserDefaults standardUserDefaults] setObject:[mylabel text]
forKey:theDate];
[[NSUserDefaults standardUserDefaults] synchronize];
}else{
myLabel.text = [[NSUserDefaults standardUserDefaults] objectForKey:theDate];
}
}
答案 2 :(得分:0)
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateStyle:NSDateFormatterStyleLong];
NSString *todaysDate = [dateFormatter stringFromDate:date];