1

NSUserDefaults クラスを使用して一部のデータを保存していますが、初期化に関して通常の競合があります。

つまり:

クラス A の didViewLoad メソッドで NSUserDefaults データを設定し、その後クラス B の didViewLoad で NSUserDefaults データを取得したいと考えています。

first-run-application 中にアプリケーションのすべての didViewLoad() が実行されることをブレークポイントで見たので、first-run-application のクラス B の viewDidLoad() に条件を入れたいと思います。ランダムなデータの初期化を避けるため。

静的変数を使用する代わりに、Objective-C のフレームワークにキーワードがありますか?

例えば:

ClassA--> didViewLoad():

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:kdataText forKey:@"udVariable"];

ClassB-> didViewLoad():

と:

ClassB--> didViewLoad():

if (!first_run){ // first_run --> KEYWORD FRAMEWORK???
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *var = [defaults objectForKey:@"udVariable"];
}
4

3 に答える 3

4

重要なのはregisterDefaultsmainアプリのデリゲートのapplicationDidFinishLaunching:. 私のアプリから:

[[NSUserDefaults standardUserDefaults] registerDefaults:
    @{@"cardMatrixRows":@4, @"cardMatrixColumns":@3}];

いわばデフォルトのデフォルトがあり、イベント/ビューコントローラーの順序はもはや重要ではありません。

于 2013-04-13T18:00:07.750 に答える
0

かどうかを確認してください [defaults objectForKey:@"udVariable"] != nil

マクロ #define を使用することもできます。

于 2013-04-13T18:00:03.370 に答える