web-dev-qa-db-ja.com

NSUserDefaultsは、Appstore内のアプリの更新を通じて保持されますか?

これは事実ですか? NSUserDefaultsは、App Storeのアプリに更新を送信するとリセットされますか、それともリセットされますか?

更新時にアプリがクラッシュしますが、完全にダウンロードしてもクラッシュしません。更新されたセッションと新しくダウンロードされたセッションで何が異なる可能性があるかを判断しようとしています。

乾杯、ニック。

102
Nick Cartwright

ユーザーがアプリを削除しない限り、通常はリセットされません。基本データの場合、設定、日付、文字列などのデータを保存するにはNSUserDefaultsが最適な方法です。画像やファイルを保存する場合は、ファイルシステムの方が適しています。

112
coneybeare

答えはイエスだと思います、それは続くでしょう。これは、Apple iPhone OS Programming Guide。

7
leon
  1. 投稿された質問に対する直接的な回答:はい。
  2. 問題:ロジックの問題が原因でアプリがクラッシュします。オブジェクトをデフォルトで保存し、アプリが起動時(または他の場所)でその値をチェックするとします。更新では、チェックや使用方法を変更できます。値が必要ですが、オブジェクトがnilであるか、その逆です。これにより、SIGABRTまたはEXC_BAD_ACCESSが発生する場合があります。
4
John Smith

Core Dataモデルがあり、移行を管理せずにモデルと更新を変更した場合、おそらく更新時にアプリがクラッシュする理由です...

2
Bojan Bozovic

同様の経験があります。このアプリは、バージョン番号をSettings.Bundle/Root.Plistに保存します。これは、iPhone設定アプリを通じて表示されます。私たちが見つけたのは、インストール時にバージョン番号がアプリバンドルからロードされるということです-したがって、バージョン番号は正しいです。ただし、更新時にはバージョン番号は変わりません。これにより、ユーザーがアプリの以前のバージョンを実行している印象を与えます。バージョン番号にリンクされたロジックはありません。表示専用です(フォールトの診断時にコンタクトセンターのスタッフが使用できます)。

私たちの経験では、ユーザーがアプリを更新してもNSUserDefaultsはクリアされませんが、設定画面も更新されません。

1
Derek Knight