あなたはNSUserDefaultsと一緒に行くべきです。 NSUserDefaultsがたくさんあると思うなら、私はあなたに1つのモデルクラスを作成し、それに付随することを提案します。 1つのモデルクラスを作成し、プロパティとして設定し、そのクラスのオブジェクトを作成してNSUserDefaultsに保存すると、一度実装するだけで簡単に実行できます。
@interface SettingsModelClass : NSObject
{
NSString *strSetting1;
BOOL boolSetting2;
}
@property (nonatomic,retain) NSString *strSetting1;
@property (nonatomic,assign) BOOL boolSetting2;
//実装における
@implementation SettingsModelClass
@synthesize strSetting1, boolSetting2;
-(void)dealloc
{
[strSetting1 release];
[super dealloc];
}
- (void)encodeWithCoder:(NSCoder *)encoder
{
//Encode properties, other class variables, etc
[encoder encodeObject:self.strSetting1 forKey:@"StringSetting"];
[encoder encodeBool:self.boolSetting2 forKey:@"BoolSetting"];
}
- (id)initWithCoder:(NSCoder *)decoder
{
self = [super init];
if(self != nil)
{
//decode properties, other class vars
self.strSetting1 = [decoder decodeObjectForKey:@"StringSetting"];
self.boolSetting2 = [decoder decodeBoolForKey:@"BoolSetting"];
}
return self;
}
@end
あなたは何の疑いがある場合は、コメントを残してください。私はあなたを助けるのが大好きです。
更新 はい、アプリケーションデリゲートを介してアクセスします。あるいは、シングルトンクラスのインスタンスとして作成することもできます。 このアプローチは、OOPS fundasを使用しているので、私が信じているこのパターンに従うことは打者です。
NSDefaultsには多すぎますか?千の鍵があれば、おそらくはい。しかし、あなたはあなたの設定を間違っています。 – Costique
大量の設定でNSUserDefaultsを使用したくない場合は、すべての設定を含むオブジェクトを作成しないでください。NSCodingプロトコルに準拠させ、アプリケーション終了時に保存するか、アクティブにして終了し、アプリケーションdidFinishLaunchingにロードしますか? – bennythemink
多くのデータを保存すると、すべての "use' [ud synchronize] '!! 1111one" - あなたがstackoverflowで見た回答を忘れてしまいます。彼らはとにかく間違っています。すべての 'setObject:forKey:'の後に同期を呼び出さないでください。問題はありません。 –