removePersistentDomainForName不适用于NSUserDefaults

Emm*_* Li 3 xcode nsuserdefaults

我正在写一个OS X应用程序.我正在尝试清除NSUserDefaults.

我现在正在做:

[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:[[NSBundle mainBundle] bundleIdentifier]];
Run Code Online (Sandbox Code Playgroud)

但它不起作用,即当我打印用户默认值时,所有键值对仍然存在.

我也尝试过添加:

[[NSUserDefaults standardUserDefaults] synchronize];
Run Code Online (Sandbox Code Playgroud)

仍然没有运气.

有人可以帮忙吗?提前致谢!

uas*_*asi 5

它似乎removePersistentDomainForName:不适用于OS X 10.8.此外,这些东西也不起作用:

[[NSUserDefaults standardUserDefaults] setPersistentDomain:@{} forName:[NSBundle mainBundle].bundleIdentifier];

[[NSUserDefaults standardUserDefaults] setValuesForKeysWithDictionary:@{}];
Run Code Online (Sandbox Code Playgroud)

要解决此问题,您可以为域设置任意键值对,然后删除该对:

[[NSUserDefaults standardUserDefaults] setPersistentDomain:@{@"": @""} forName:[NSBundle mainBundle].bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@""];

NSLog(@"%@", [[NSUserDefaults standardUserDefaults] persistentDomainForName:[NSBundle mainBundle].bundleIdentifier]); // => (null)
Run Code Online (Sandbox Code Playgroud)