web-dev-qa-db-ja.com

NSUserDefaultsでユーザーのデフォルト値を削除する方法は?

つまり、私のアプリは最初にいくつかの標準のデフォルト値を設定します。これらの値は、ユーザーによって上書きされる場合があります。そして、ユーザーが物事を台無しにしたら、それらの設定をアプリのデフォルト値に戻したいと思います。私が理解しているように、アプリのデフォルトはユーザーのデフォルトとは異なる辞書であり、ユーザーのデフォルトはそれらのアプリのデフォルトをオーバーライドするだけです。しかし、ユーザーのデフォルトを削除する方法は見ていません。何か案が?

71
HelloMoon

removeObjectForKey -を試してください。これにより、設定を削除できます。

131
fbrereto

このコードを使用

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

すぐに保存したい場合は同期を忘れないでください

[[NSUserDefaults standardUserDefaults] synchronize];

NSUserDefaultsクラスリファレンス

synchronize-このメソッドは定期的な間隔で自動的に呼び出されます。自動同期を待つことができない場合にのみこのメソッドを使用します(たとえば、アプリケーションが終了する)、または変更を加えていない場合でも、ユーザーのデフォルトをディスク上にあるものに更新する場合。

94
Rajneesh071
NSUserDefaults * removeUD = [NSUserDefaults standardUserDefaults];
[removeUD removeObjectForKey:@"shoping"];
[[NSUserDefaults standardUserDefaults]synchronize ];
8
Mohit

コピーペーストが簡単なSwiftバージョン:

var idForUserDefaults = "somestupidtext"
var userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.removeObjectForKey(idForUserDefaults)
userDefaults.synchronize()

または

NSUserDefaults.standardUserDefaults().removeObjectForKey("somestupidtext")
NSUserDefaults.standardUserDefaults().synchronize()
8
Esqarrouth

特定のKEY値を削除するには:

Swift 3 +

UserDefaults.standard.removeObject(forKey: "KEY")

Obj-C

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"KEY"];
[[NSUserDefaults standardUserDefaults] synchronize];

serDefaultsのリセット/すべてのデータのクリア:が必要な場合:

NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];

Swift 3:

if let bundle = Bundle.main.bundleIdentifier {
    UserDefaults.standard.removePersistentDomain(forName: bundle)
}
6
Lal Krishna

Swift 3.0 code:

UserDefaults.standard.removeObject(forKey: "YOURKEY")

4
kbunarjo

迅速な方法

UserDefaults.standard.removeObject(forKey: "aKey")
UserDefaults.standard.synchronize()
0
Basir Alam

In Swift 4

    UserDefaults.standard.removeObject(forKey: "your_key")
    UserDefaults.standard.synchronize()
0