NSUserDefaults와 함께 사용해야합니다. NSUserDefaults가 많이 있다고 생각된다면 1 모델 클래스를 만들어 함께 사용하라고 제안합니다. 하나의 모델 클래스를 만들고 등록 정보로 설정하고 해당 클래스의 객체를 만들고 NSUserDefaults에 저장하면 한 번만 구현되기 때문에 쉽게 사용할 수 있습니다. 당신이 의심이있는 경우
@interface SettingsModelClass : NSObject
{
NSString *strSetting1;
BOOL boolSetting2;
}
@property (nonatomic,retain) NSString *strSetting1;
@property (nonatomic,assign) BOOL boolSetting2;
// Implementaiton는
@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
많은 데이터를 저장하면 "사용"[ud synchronize]'!! 1111one "- 스택 오버플로에서 보았던 답변을 잊어 버릴 수 있습니다. 그들은 어쨌든 일반적으로 잘못되었습니다. 모든'setObject : forKey :'후에 동기화를 호출하지 마십시오. 아무런 문제가 없습니다. –