0

UISwitchファイル内の複数のスイッチの状態を保存しようとしてきたgrocery.mので、ユーザーがアプリを終了しても、スイッチの状態はそのまま残ります。これは私がこれまで行ってきた方法ですが、運がありませんでした。grocery.m問題はファイル内ではなく、ファイル内で行う必要があると思いますappDelegate.m。誰かが私の間違いを教えていただければ幸いです。ありがとう!

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 


NSUserDefaults* defaults  = [NSUserDefaults standardUserDefaults];    

push.switchstore1.on = [defaults boolForKey: @"mySwitch1"];
push.switchstore2.on = [defaults boolForKey: @"mySwitch2"];
push.switchstore3.on = [defaults boolForKey: @"mySwitch3"];

UIApplication *app = [UIApplication sharedApplication];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillTerminate:) name:UIApplicationWillTerminateNotification object:app]; //Listener
    }

 - (void)applicationWillTerminate:(UIApplication *)application {



NSUserDefaults* defaults  = [NSUserDefaults standardUserDefaults];
[defaults setBool: push.store1.on forKey: @"mySwitch1"];
[defaults setBool: push.store2.on forKey: @"mySwitch2"];
[defaults setBool: push.store3.on forKey: @"mySwitch3"];

[[NSUserDefaults standardUserDefaults] synchronize];
[self saveContext]; //Already in the method by default
}

GROCERY.M 内

  -(void) viewDidLoad
 { 
 NSUserDefaults* defaults  = [NSUserDefaults standardUserDefaults];
 switchStore1.on = [defaults boolForKey: @"mySwitch1"];
 switchStore2.on = [defaults boolForKey: @"mySwitch2"];
 switchStore3.on = [defaults boolForKey: @"mySwitch3"];
 }

delegate.h に追加されたものを編集します (プロパティは .m にも合成されています)

groceryViewController *push;
@property (nonatomic, retain) groceryViewController *push;
4

2 に答える 2

0

あなたの applicationWillTerminate では、スイッチのデフォルトの「オフ」値を常に持つ、まったく新しいgroceryViewControllerを開始しています。アプリの didFinishLaunchingWithOptions. これには、グローバル変数の使用や AppDelegate のプロパティの使用など、さまざまな方法があります。

于 2012-05-21T03:44:39.697 に答える
0

の新しいインスタンスを常に作成しているgroceryViewControllerため、情報を取得したい場所から同じメモリ位置を参照しません。

于 2012-05-21T03:47:00.550 に答える