2014-07-24 1 views
1

@"userKey" 키를 사용하여 NSUserDefaultNSString을 저장했습니다.
앱이 완전히 종료되었지만 백그라운드로 들어갈 때이 값을 @""으로 재설정하고 싶습니다.앱 종료시 NSUserDefault 키 값 삭제

이 나는 ​​시도했다 : 내 AppDelegate에의 -applicationWillTerminate:하지만 아무것도에서

[[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@"opponentFile"]; 

가 발생합니다.

앱을 완전히 닫은 후에 열면 기본값이 그대로 유지됩니다.
어떻게하면됩니까?

답변

4

영구 변경 간격 예정이다.
대신 다음 코드를 -applicationWillTerminate:에 추가하면됩니다.

[[NSUserDefaults standardUserDefaults] synchronize]; 

앱 성능을 저하시키는 경향이 있으므로 너무 자주하지 마십시오.


아니면 ... 그냥 대신 -didFinishLaunchingWithOptions:에서

[[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@"opponentFile"]; 

할 수 있습니다.
나에게도 똑같은 것처럼 보입니다.

+0

-didFinishLaunchingWithOptions :에'[[NSUserDefaults standardUserDefaults] setObject : @ ""forKey : @ "opponentFile"];'를 넣었습니다. – user1114881

0

대신보십시오 : NSUserDefaults

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application; 
+0

내가 반대했을 때,이 메서드는 응용 프로그램이 닫힐 때만 호출되며, 장치가 메모리 부족 인 경우에만 호출됩니다. 그는 앱 종료시 자신의 가치를 재설정하기를 원하므로 staticVoidMan에서 제안한대로 applicationWillTerminate가 필요합니다. –