1

iPhoneアプリを開発しています。アプリはアプリストアで入手できます。NSUserDefaults を使用して、usertoken 値を保存しています。しかし、一部のユーザーは、アプリが (バックグラウンドで) 長時間アイドル状態になると、usertoken が null になると報告しています。しかし、通常、値は取得されています。

以下は、NSUserDefaults に usertoken を格納するためのコードです。ログインページとサインアップページから userToken に値を設定しています。

[[NSUserDefaults standardUserDefaults] setObject:userToken forKey:USER_TOEKN];

値を NSUserDefaults に設定した後、同期を呼び出していません。助けてください

4

2 に答える 2

2

アプリがバックグラウンド化される場合は、呼び出す必要があり[[NSUserDefaults standardUserDefaults] synchronize];ます-私の推測では、デフォルトが自動的に同期する前にアプリがアイドル状態になります。ドキュメントから:

このメソッドは定期的に自動的に呼び出されるため、このメソッドは、自動同期を待てない場合 (たとえば、アプリケーションが終了しようとしている場合)、またはユーザーのデフォルトをディスク上のものに更新したい場合にのみ使用してください。何も変更していません。

これを行う場所については、Application Delegate のapplicationWillResignActive:applicationDidEnterBackground:を見てください。

于 2013-01-29T13:58:32.283 に答える
0

次のようなことを試してください:

 NSUserDefaults  *udf = [NSUserDefaults standardUserDefaults];
 [udf setObject:userToken forKey:USER_TOEKN];
 [udf synchronize];

それはあなたの価値を永久に保存します。

于 2013-01-29T14:01:18.550 に答える