0

以下が解りません。私のアプリは、起動時にデフォルトで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はアプリ終了時に「データ保存済み」と出力するのですが、アプリを再起動すると全ての写真が隠れてしまいます...

誰かが私に正しい方向を教えてもらえますか?ここで何が間違っていますか?

ありがとうございました!A.

4

1 に答える 1

0

わかりました、私は自分で管理しました。誰かが必要とする場合は、以下のコードがあります:

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;

お役に立てば幸いです。A。

于 2012-05-22T23:56:13.490 に答える