[iphone] NSUserDefaults에서 사용자 기본값을 삭제하는 방법은 무엇입니까?

즉, 내 앱은 처음에 몇 가지 표준 기본값을 설정합니다. 그러면 해당 값이 사용자에 의해 재정의 될 수 있습니다. 그리고 사용자가 일을 엉망으로 만들면 해당 설정을 앱 기본값으로 다시 설정하고 싶습니다. 내가 이해했듯이 앱 기본값은 사용자 기본값과 다른 사전이며 사용자 기본값은 해당 앱 기본값을 재정의합니다. 하지만 사용자 기본값을 삭제하는 방법을 보지 못했습니다. 어떤 생각?



답변

시도해보십시오. removeObjectForKey그러면 기본 설정을 제거 할 수 있습니다.


답변

이 코드 사용

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"MyKey"];

즉시 저장하려면 동기화하는 것을 잊지 마십시오

[[NSUserDefaults standardUserDefaults] synchronize];

NSUserDefaults 클래스 참조

동기화 -이 메서드는 주기적으로 자동으로 호출됩니다. 자동 동기화를 기다릴 수없는 경우 (예 : 응용 프로그램이 종료되는 경우) 또는 사용자 기본값을 디스크에있는 항목으로 업데이트하려는 경우에만이 메서드를 사용하십시오. 변경하지 않았지만.

스위프트 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()