0

アプリの設定にはいくつかありますが、それらはすべて非常に基本的なものであり、アプリ全体でそれらにアクセスする必要があります。これらの設定が NSUserDefaults に保存されるようにセットアップしました。私の質問は、それらにアクセスする最善の方法は、クラスのインスタンスがロードされるたびに NSUserDefaults からロードする必要があるかどうか、またはどこかで一度ロードして、どこからでもそのグローバル データにアクセスする方がよいかどうかです。それが最善の選択肢である場合、どうすれば後者を実行できますか?

4

2 に答える 2

2

Instruments からのプロファイリング データが問題の可能性を示唆しない限り、NSUserDefaults を使用します。問題がある場合は、キャッシュを検討する時期かもしれません。

ただし、NSUserDefaults は既にキャッシュを行っているので、問題ないはずです。

于 2013-09-11T20:42:40.113 に答える
1

次のことができます。

クラス LoadUserDefaults を NSObject から作成します。

ヘッダー ファイル:

#import <Foundation/Foundation.h>

@interface LoadUserDefaults : NSObject

//example variables
int score;

NSString username;


//etc...

-(void)loadUserDefaults;

@end

今あなたの.mファイルに:

#import "LoadUserDefaults.h"

@implementation LoadUserDefaults

-(void)loadUserDefaults{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    score = [defaults valueForKey:@"score"];

    username = [defaults valueForKey:@"username"];

    //etc.

}


@end

次に、デフォルトにアクセスしたいすべての場所にクラスをインポートします。

#import "LoadUserDefaults"

その後、それらをどこかにロードします。

LoadUserDefaults *loadDefaults = [[LoadUserDefaults alloc]init];

[loadDefaults loadUserDefaults];

最後に、変数を取得する場合:

 LoadUserDefaults *loadDefaults = [[LoadUserDefaults alloc]init];

 int score = loadDefaults.score
于 2013-09-11T20:50:44.713 に答える