/ NSUserDefaultsの/データは、アプリの再起動ごとに消えます - ios、xcode、nsuserdefaults

NSUserDefaultsのデータは、すべてのアプリケーションの再起動時に消えています - ios、xcode、nsuserdefaults

私はこの奇妙な振る舞いを見ています。私の具体的な装置または私の建築環境に特定であること(私の同僚は同じコードを作るときこの問題を抱えていない)。 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は1

NSUserDefaultsへの永続化を無効にするような派手な設定はありませんが、考慮する必要がある考慮事項がいくつかあります。

  1. NSUserDefaultsに追加して検索する前に、単純な値以外のオブジェクトを必ずアーカイブしてアーカイブ解除してください。
  2. 永続化されたデータの範囲(App、Deviceなど)を確実に理解し、NSUserDefaultクラス内の適切なメソッドを見てください。
  3. サードパーティのライブラリがリセットされていないことを確認してください。NSUserDefault、それが私の場合の問題でした。アプリの起動時にデバッグし、あなたが最初に値を持っているかどうかとあなたがそれを "失う"ときに把握しようとします。これは私の場合に役立ちました。

回答№2の場合は0

新しい「シングルビューアプリケーション」を作成し、データを保存するために使用しているコードを追加してみてください。 NSUserDefault、in didFinishLaunchingWithOptions。問題が解決しないかどうかを確認してください。