즉, 내 앱은 처음에 몇 가지 표준 기본값을 설정합니다. 그러면 해당 값이 사용자에 의해 재정의 될 수 있습니다. 그리고 사용자가 일을 엉망으로 만들면 해당 설정을 앱 기본값으로 다시 설정하고 싶습니다. 내가 이해했듯이 앱 기본값은 사용자 기본값과 다른 사전이며 사용자 기본값은 해당 앱 기본값을 재정의합니다. 하지만 사용자 기본값을 삭제하는 방법을 보지 못했습니다. 어떤 생각?
답변
시도해보십시오. removeObjectForKey
그러면 기본 설정을 제거 할 수 있습니다.
답변
이 코드 사용
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"MyKey"];
즉시 저장하려면 동기화하는 것을 잊지 마십시오
[[NSUserDefaults standardUserDefaults] synchronize];
동기화 -이 메서드는 주기적으로 자동으로 호출됩니다. 자동 동기화를 기다릴 수없는 경우 (예 : 응용 프로그램이 종료되는 경우) 또는 사용자 기본값을 디스크에있는 항목으로 업데이트하려는 경우에만이 메서드를 사용하십시오. 변경하지 않았지만.
스위프트 5 :
UserDefaults.standard.removeObject(forKey: "MyKey")
UserDefaults.standard.synchronize()
답변
NSUserDefaults * removeUD = [NSUserDefaults standardUserDefaults];
[removeUD removeObjectForKey:@"shoping"];
[[NSUserDefaults standardUserDefaults]synchronize ];
답변
간편한 복사 붙여 넣기를위한 Swift 버전 :
var idForUserDefaults = "somestupidtext"
var userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.removeObjectForKey(idForUserDefaults)
userDefaults.synchronize()
또는
NSUserDefaults.standardUserDefaults().removeObjectForKey("somestupidtext")
NSUserDefaults.standardUserDefaults().synchronize()
답변
특정 KEY 값을 제거하려면 :
Swift 3+
UserDefaults.standard.removeObject(forKey: "KEY")
Obj-C
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"KEY"];
[[NSUserDefaults standardUserDefaults] synchronize];
UserDefaults / Clear All datas 를 재설정 해야하는 경우 :
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
스위프트 3 :
if let bundle = Bundle.main.bundleIdentifier {
UserDefaults.standard.removePersistentDomain(forName: bundle)
}
답변
Swift 3.0 코드 업데이트 :
UserDefaults.standard.removeObject(forKey: "YOURKEY")
답변
Swift 4에서
UserDefaults.standard.removeObject(forKey: "your_key")
UserDefaults.standard.synchronize()