即,我的应用程序在开始时设置一些标准默认值.然后,这些值可能被用户覆盖.当用户搞砸了,我想将这些设置设置回我的应用默认值.据我了解,应用程序默认值是与用户默认值不同的字典,用户默认值只是覆盖那些应用程序默认值.但我还没有看到删除用户默认值的方法.任何的想法?
Raj*_*071 95
使用此代码
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"MyKey"];
Run Code Online (Sandbox Code Playgroud)
如果你想立即保存,别忘了同步
[[NSUserDefaults standardUserDefaults] synchronize];
Run Code Online (Sandbox Code Playgroud)
synchronize - 此方法会定期自动调用,仅当您无法等待自动同步时(例如,如果您的应用程序即将退出)或者您希望将用户默认值更新为磁盘上的内容时,才使用此方法虽然你没有做任何改变.
NSUserDefaults * removeUD = [NSUserDefaults standardUserDefaults];
[removeUD removeObjectForKey:@"shoping"];
[[NSUserDefaults standardUserDefaults]synchronize ];
Run Code Online (Sandbox Code Playgroud)
Swift版本,便于复制粘贴:
var idForUserDefaults = "somestupidtext"
var userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.removeObjectForKey(idForUserDefaults)
userDefaults.synchronize()
Run Code Online (Sandbox Code Playgroud)
要么
NSUserDefaults.standardUserDefaults().removeObjectForKey("somestupidtext")
NSUserDefaults.standardUserDefaults().synchronize()
Run Code Online (Sandbox Code Playgroud)
Swift 3+
UserDefaults.standard.removeObject(forKey: "KEY")
Run Code Online (Sandbox Code Playgroud)
OBJ-C
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"KEY"];
[[NSUserDefaults standardUserDefaults] synchronize];
Run Code Online (Sandbox Code Playgroud)
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
Run Code Online (Sandbox Code Playgroud)
斯威夫特3:
if let bundle = Bundle.main.bundleIdentifier {
UserDefaults.standard.removePersistentDomain(forName: bundle)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
64612 次 |
最近记录: |