내 iPhone 응용 프로그램에서 removeObjectForKey:@"bla"
또는 setObject:nil forKey:@"bla"
을 [NSUserDefaults standardUserDefaults]
에 사용하여 키를 삭제합니다.NSUserDefaults를 동기화해도 아무 효과가 없습니다
그러나 새 컨트롤러를 탐색 컨트롤러 스택에 밀어 넣기 직전에 기본값을 업데이트하지 않습니다.
푸시 된 컨트롤러의 viewDidAppear
에서 수행하면 synchronize
호출이 예상 한대로 작동합니다.
이 동작을 이해하지 못합니다. 누구도 비슷한 문제가 있었습니까?
요약 : 삭제 + 새 VC를 푸시하기 전에 동기화 : NSUserDefaults는 동일하게 유지됩니다. 삭제 + 동기화 viewDidAppear
및 작동합니다.
나는 또한 setPersistentDomain:forName:
를 사용했지만, 결과는 동일 ..
편집 : 여기에 코드입니다 :
이+ (void)deleteDefaultEntries
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults removeObjectForKey:@"key1"];
[defaults removeObjectForKey:@"key2"];
[defaults removeObjectForKey:@"key3"];
[defaults removeObjectForKey:@"key4"];
[defaults synchronize];
}
정말로 고정 된 문자열 또는 ViewController에 연결된 일부 변수를 저장하려고합니까? –
NSUserDefaults에있는 키를 삭제하려고합니다. 그냥 문자열. 정확히 4. – scrrr
코드를 추가하십시오 –