1

我们正在开发一个 iPhone 应用程序。该应用程序可在应用商店中获得。我们使用 NSUserDefaults 来存储我们的 usertoken 值。但是一些用户报告说,当应用程序长时间闲置(在后台)时,usertoken 变为空。但通常价值是越来越大。

以下是在 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 回答