1

CFPreferencesCopyAppValueにユーザー名を保存しています。iOS 3.1.3では期待どおりに機能しますが、iOS4ではアプリが開いている間は保存されますが、閉じられるとすぐに(マルチタスククローズ機能を使用して)変数は保存されません。つまり、アプリの再起動時にnullになります。

アプリの閉じ方がiOS3とは少し異なり、閉じているアプリを節約できないため、マルチタスクで問題が発生する可能性があると感じています。

残念ながら、最新バージョンのSDKを使用していないため、今後のリリースで修正される可能性がありますが、アプリが3.1.3および4.0で動作する必要があります。これは、3.1.3および複数のインストールを必要とせずに4.0。したがって、最終バージョンで修正された場合は、複数のインストールが必要になると思います。

問題に光を当てていただければ幸いです。

4

1 に答える 1

1

値を更新しようとしている方法の実際のコードを投稿すると便利な場合があります。ドキュメントによるとCFPreferencesCopyAppValue

最近、可変オブジェクトを使用して値を設定した場合でも、この関数から返される値は不変であることに注意してください。

また、「設定のベストプラクティスCFPreferencesSetAppValue」ドキュメントでは、値を保存するために使用する必要があると指定されています。

更新:現在のコードは3.1.3で動作するとおっしゃっていたので、シナリオに何かが欠けているのではないかと思います。おそらく、以下の私の答えはあなたがしていることです。

その場合は、値を保存するイベントを指定することをお勧めします。アプリのシャットダウン時に更新している可能性がありますが、plistで一時停止をサポートしていないことを明示的に指定していない場合は、アプリが一時停止されている可能性があります。

Update2CFPreferencesSetAppValueドキュメントには明示的に記載されています:

CFPreferencesAppSynchronize変更を永続ストレージに保存するには、関数を呼び出す必要があります

于 2010-07-02T04:33:10.523 に答える