2014-03-12 2 views
0

소리를 UserDefaults를 사용하도록 설정하고 있습니다. 그런 다음 관리가 잘되고 작동하며 YES/NO 값을 설정합니다.NSUserDefaults - 시작 값을 설정하는 방법?

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:kSoundEnabled]; 
    [[NSUserDefaults standardUserDefaults]synchronize]; 

첫 번째 앱 실행을위한 소리 매개 변수 설정 방법은 어디에서 할 수 있습니까?

+2

이유는 바로 확인하지 않습니다 [[NSUserDefaults standardUserDefaults] objectForKey : kSoundEnabled] == 전무와 YES로 지역 변수를 설정? –

답변

7

registerDefaults:을 사용하여 초기 값을 설정할 수 있습니다. 초기 값은 모두 초기 키와 해당 값의 NSDictionary입니다. 예 : 응용 프로그램 위임에

[[NSUserDefaults standardUserDefaults] registerDefaults:@{ kSoundEnabled : @YES }]; 
+3

... 좋은 방법으로 구현됩니다. 등록 된 기본값은 디스크에 저장되지 않고 저장되지 않은 경우 메모리에 체크됩니다. 따라서 기존 문제가 없어도 언제든지 이러한 기본값을 자유롭게 변경할 수 있습니다. – Tommy

0

(보통 AppDelegate.m가)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults]; 
    if([userDefaults objectForKey:kSoundEnabled] == nil) { 
     [userDefaults setObject:@YES forKey:kSoundEnabled]; 
     [userDefaults synchronize]; 
    } 
} 
+0

NSUserDefaults registerDefaults :를 사용하는 것이 더 낫습니다. – rmaddy

+0

@rmaddy, 왜 그렇게 생각하니? – user3358463

+0

@ user3358463 그것이 그 목적이기 때문입니다. 'nil'을 검사하거나 초기 값을 쓸 필요없이 디폴트 값을 셋업 할 수 있습니다. 일단 기본값이 등록되면 주어진 키에 값이 있는지 여부를 확인하기 위해 코드에 특별한 논리가 필요하지 않습니다. 당신은 단순히 가치를 얻고 그에 따라 행동해야합니다. 훨씬 깨끗합니다. – rmaddy