2014-09-11 1 views
0

내 응용 프로그램은 NSUserDefaults 내에 일부 상태 정보를 저장합니다. 빌드 &을 사용하는 경우 Xcode 6 (GM)의 최신 버전으로 실행하면 설치시 모든 기본값이 플러시됩니다. 또한 내 Settings.bundle에 입력 된 값이 제거됩니다 (사용자 기본값의 다른 기호가 플러시됩니다). 그 문제를 해결하는 방법에 대한 제안?Xcode 6 flushing NSUserDefaults

답변

1

을합니다. 시작시 응용 프로그램 문서 디렉토리에있는 일부 파일을 확인했습니다. 그렇지 않은 경우 NSUserDefaults에서 물건을 제거했습니다. 애플은 Xcode 빌드를 업데이트 한 것으로 보인다 & 빌드 & 실행이 실행될 때마다 새로운 앱 파일 경로 (경로 내부의 식별자가 변경됨)로 이어지는 실행을 실행한다. Build & Run (일반 사용자가 할 수있는 것처럼)없이 정상적인 방법으로 앱을 다시 시작하면 모든 것이 잘 작동하고 경로는 그대로 유지됩니다.

0

아래에서 사용하십시오. 이제 작동 할 것입니다. 그것은 여전히 ​​작동하지 않으면 내가 조금 오해했다 나타나는

[[NSUserDefaults alloc] initWithSuiteName:@"group identifier"]; // this is introduced in iOS8 
[[NSUserDefaults alloc] setValue:@"yes" forKey:@"test"]; 
[[NSUserDefaults alloc] synchronize]; 

, Product>>Clean

+0

NSUserDefaults의 새 인스턴스를 항상 할당하므로 분명히 작동하지 않습니다. 또한 settings.bundle을 작동시키기 위해 standardDefaults를 사용할 수 있어야합니다. –

+0

@TimSpecht : 해결책 찾았습니까? 나는이 줄의 bcz를 항상 할당한다고 믿는다. [[NSUserDefaults alloc] initWithSuiteName : @ "group identifier"];'. nsuserdefault 그룹이 있는지 확인하십시오. 그렇지 않다면이 줄을 사용하십시오 ... –

+0

실제로 문제의 원인을 발견했습니다. 문서 디렉토리의 경로가 변경된 시간을 변경합니다. ( –