私はこの奇妙な振る舞いを見ています。私の具体的な装置または私の建築環境に特定であること(私の同僚は同じコードを作るときこの問題を抱えていない)。 Xcodeのデータからアプリを起動するたびに NSUserDefaults
なくなっている。アプリを終了して再起動した場合も同様です。
私はXcode、私のラップトップ、デバイスを再起動し、プロジェクトと得られたデータをきれいにしてみました - 何も助けになりませんでした。電話します synchronize()
データを更新した後は、永続化する必要があります。しかしそうではありません。コンソールにエラーが表示されません。
この問題の原因は何ですか?修正するにはどうすればよいですか。これは気の利いた隠されたプロジェクト設定によるものですか?
また、データが再起動時にリセットされるのか、保存されないのかが知りたいのですが。 synchronize()
と呼ばれています。ファイルの内容を調べることができますか NSUserDefaults
保存されますか?
更新: 興味深い詳細Simulatorでアプリを終了した後、Xcodeから起動できなくなりました(「The operation couldn’t be completed. (LaunchServicesError error 0.)
")私は使わなければなりません iOS Simulator -> Reset Content and Settings
エミュレータでアプリを再度実行できるようにするため。
更新2: iPhone Simulatorが保存しているファイルを見つけようとしました NSSharedPreferences
提案通り ここにしかし、それはありません。
回答:
回答№1は1NSUserDefaultsへの永続化を無効にするような派手な設定はありませんが、考慮する必要がある考慮事項がいくつかあります。
- NSUserDefaultsに追加して検索する前に、単純な値以外のオブジェクトを必ずアーカイブしてアーカイブ解除してください。
- 永続化されたデータの範囲(App、Deviceなど)を確実に理解し、NSUserDefaultクラス内の適切なメソッドを見てください。
- サードパーティのライブラリがリセットされていないことを確認してください。NSUserDefault、それが私の場合の問題でした。アプリの起動時にデバッグし、あなたが最初に値を持っているかどうかとあなたがそれを "失う"ときに把握しようとします。これは私の場合に役立ちました。
回答№2の場合は0
新しい「シングルビューアプリケーション」を作成し、データを保存するために使用しているコードを追加してみてください。 NSUserDefault
、in didFinishLaunchingWithOptions
。問題が解決しないかどうかを確認してください。