我有一個問答遊戲,當答案是正確的,一個帶勾號的圖片將出現。由於我有很多領域,需要應用程序來記住下次啓動時已完成哪些工作。我正在使用NSUserDefaults。它工作的很好,但問題是,在第一次啓動時顯示所有「完成」圖像。我試圖繞過BOOL邏輯,但沒有成功。NSUserDefaults布爾邏輯
.H
BOOL doneState;
的.m
- (void)viewDidLoad{
[super viewDidLoad];
[self doneHidden];
[self checkBools];
}
- (void)checkBools{
//--------NSUserDefaults & tick sign hidden
BOOL saved = [[NSUserDefaults standardUserDefaults] boolForKey:@"hiddenDone"];
NSLog (@"Value of my saved BOOL = %@", saved ? @"YES" : @"NO");
done.hidden = saved;
}
-(void)doneHidden{
done.hidden = YES;
}
當用戶退出應用程序,方法如下能夠記憶BOOL值
-(IBAction)flipBack:(id)sender{
if (done.hidden == NO) {
doneState = NO;
}
else {
doneState = YES;
}
[[NSUserDefaults standardUserDefaults] setBool:doneState forKey:@"hiddenDone"];
NSLog (@"Value of BOOL 1 = %@", doneState ? @"YES" : @"NO");
}
的想法是第一隱藏名爲ImageView的「完成」,然後運行BOOL。控制檯在第一次啓動時給出結果,即使它是這樣設置的,它也不會被隱藏。
控制檯輸出:
Value of my saved BOOL = NO;
我怎樣才能提高它的邏輯是什麼?在第一個推出
- 隱藏圖像
- 如果退出應用程序檢查,如果圖像是可見的,並創建BOOL
- 下一頁推出閱讀BOOL和顯示圖像如果以前保存的如此
第一次啓動時,沒有存儲任何值,因此您將收到NO。 – jrturton 2013-02-23 12:02:51
因此,也許將含義從「隱藏」改爲「回答」或任何其他內容,以便所有內容都以NO開頭。 – jrturton 2013-02-23 12:08:41