NSUserDefaultsを使用しているときにXcode 5でosxアプリケーションをプログラミングする際に問題が発生しました。通常は、ユーザーの好みを覚えておくために[[NSUserDefaults standardUserDefaults] setObject:@"This is an object" forKey:@"Test"]
を使用します。その後、〜/ Library/Preferences/application.bundle.identifier.plistにplistファイルが生成されます。Xcode 5.0 NSUserdefaultsはplistを削除した後でもまだ設定を保存しています
問題は、私がplistファイルを削除した後も、アプリケーションはまだ私が保存した設定を取得できることです。プロジェクトをクリーンアップしてxcodeを再起動し、派生フォルダ内のファイルを削除しようとしても、plistをクリアする方法はありません。私がこの問題を解決する唯一の方法は、システムを再起動することです。そのため、メモリに何かが格納されていると思います。問題は、これらの保存された設定をどのようにクリアすることができるかです。 (私は、デバッグとテストでコードを手動で追加することで設定をクリアするのは便利ではないと思います。)そして、Xcode 4.xの旧バージョンを試しましたが、そのような問題はありません。 「applicationDidFinishLaunching」下
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"This is an object." forKey:@"Test"];
NSLog(@"%@", [defaults objectForKey:@"Test"]);
:誰もがちょうど新しいココアプロジェクトを作成し、次のようなコードを追加することができ関心を持っています。次に、~/Library/Preferences/application.bundle.identifier.plist
を削除してください。 その後、コードに[defaults setObject:@"This is an object." forKey:@"Test"];
の行をコメントし、アプリケーションを再度実行してください。コンソールはまだ表示されます"This is an object."
私の環境はMavericks GMとXcode 5.0(5a1413)です。
これは私にとってただのものではありません。
リンク先のSDKは何ですか?削除した直後に環境設定にアクセスしようとしているときに、削除されたデータを取得すると、データがキャッシュされている可能性があります。 – SevenBits
[NSUserDefaultsはどこにMac OS Xでデータを保存しますか?](http://stackoverflow.com/questions/19234665/where-does-nsuserdefaults-store-data-on-mac-os-x) –