我不能理解以下几点。我的应用程序在启动时,默认情况下会隐藏5个图像,它们将在稍后的代码中取消隐藏。他们中的一些。我试图在退出应用程序以存储信息时为NSUserDefaults设置BOOL,哪些图片仍然隐藏,所以下一次启动应用程序时应该检查从上一次启动时显示了多少图片,并在启动时将这些图片的.hidden方法设置为NO。意思是,如果5个中的3个被揭示,我需要同样的3个图片来显示下一次。
下面是我得到的信息:
app.h
BOOL doneState;app.m
- (void)viewDidLoad
{
[super viewDidLoad];
doneState = TRUE;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
done.hidden = [defaults boolForKey:@"hiddenDone"];
}
...
..
.
//---- When quitting app, save defaults (one example)
-(IBAction)flipBack:(id)sender{
doneState = TRUE;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:doneState forKey:@"hiddenDone"];
[defaults synchronize];
NSLog(@"Data Saved");
[self dismissModalViewControllerAnimated:NO];
}NSLog会在退出应用程序时打印“保存的数据”,但当再次启动应用程序时,所有图片都会被隐藏……
有谁能告诉我正确的方向和我哪里做错了?
谢谢!一个。
发布于 2012-05-23 07:56:13
好的,我自己搞定了。如果任何人需要以下代码:
controller.h
BOOL doneState;controller.m
//------ save data
if (img.hidden == NO) {
doneState = NO;
}
else {
doneState = YES;
}
[[NSUserDefaults standardUserDefaults] setBool:doneState forKey:@"hiddenDone"];
NSLog (@"Value of BOOL 1 = %@", doneState ? @"YES" : @"NO");
//display on load
BOOL saved = [[NSUserDefaults standardUserDefaults] boolForKey:@"hiddenDone"];
NSLog (@"Value of my saved BOOL = %@", saved ? @"YES" : @"NO");
img.hidden = saved;希望这能有所帮助!一个。
https://stackoverflow.com/questions/10675177
复制相似问题