LoginSignup
6
6

More than 5 years have passed since last update.

OS X 10.8 で NSUserDefaults を空にするには

Last updated at Posted at 2013-05-28

OS X 10.8 にはバグがあるらしく、 NSUserDefaultsremovePersistentDomainForName: を呼んでも defaults が削除されない。また、 setPersistentDomain:forName で空の辞書をセットしても何も起こらない:

// これはダメ
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:[NSBundle mainBundle].bundleIdentifier];
// これもダメ
[[NSUserDefaults standardUserDefaults] setPersistentDomain:@{} forName:[NSBundle mainBundle].bundleIdentifier];

唯一の手段は、空でない適当な辞書を defaults にセットし、値を取り除く方法である:

// これが正解
[[NSUserDefaults standardUserDefaults] setPersistentDomain:@{@"": @""} forName:[NSBundle mainBundle].bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@""];
6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6