首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSUserDefaults和.hidden状态

NSUserDefaults和.hidden状态
EN

Stack Overflow用户
提问于 2012-05-21 00:28:37
回答 1查看 205关注 0票数 0

我不能理解以下几点。我的应用程序在启动时,默认情况下会隐藏5个图像,它们将在稍后的代码中取消隐藏。他们中的一些。我试图在退出应用程序以存储信息时为NSUserDefaults设置BOOL,哪些图片仍然隐藏,所以下一次启动应用程序时应该检查从上一次启动时显示了多少图片,并在启动时将这些图片的.hidden方法设置为NO。意思是,如果5个中的3个被揭示,我需要同样的3个图片来显示下一次。

下面是我得到的信息:

app.h

代码语言:javascript
复制
BOOL doneState;

app.m

代码语言:javascript
复制
- (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会在退出应用程序时打印“保存的数据”,但当再次启动应用程序时,所有图片都会被隐藏……

有谁能告诉我正确的方向和我哪里做错了?

谢谢!一个。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-23 07:56:13

好的,我自己搞定了。如果任何人需要以下代码:

controller.h

代码语言:javascript
复制
BOOL doneState;

controller.m

代码语言:javascript
复制
//------ 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;

希望这能有所帮助!一个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10675177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档