0

我无法弄清楚以下内容。我的应用程序在启动时默认隐藏 5 张图像,稍后将在代码中取消隐藏。他们中有一些。我试图在退出应用程序以存储信息时为 NSUserDefaults 设置 BOOL,哪些图片仍然隐藏,因此下次启动应用程序假设检查从上次启动中显示了多少图片并将这些图片的 .hidden 方法设置为 NO on发射。意思是,如果 5 个中的 3 个被显示,我下次需要显示相同的 3 张图片。

这是我所拥有的:

应用程序.h

BOOL doneState;

应用程序.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在退出应用程序时打印“数据已保存”,但再次启动应用程序时,所有图片都被隐藏...

谁能指出我正确的方向,我在这里做错了什么?

谢谢!一种。

4

1 回答 1

0

好的,我自己管理。如果有人需要,下面有代码:

控制器.h

BOOL doneState;

控制器.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;

希望有帮助!一种。

于 2012-05-22T23:56:13.490 回答