10

当用户登录到我的应用程序时,我会从我的 JSON 服务器下载一个令牌并将其存储在 NSUserDefaults 中,如下所示:

[[NSUserDefaults standardUserDefaults] setValue:token forKey:TOKEN];

当用户在后续页面中注销时,我调用此方法并返回登录屏幕:

[[NSUserDefaults standardUserDefaults] setObject:@"" forKey:TOKEN];

(在此之前我调用了 [[NSUserDefaults standardUserDefaults] removeObjectForKey:TOKEN];)

无论我如何尝试删除此用户默认值,每当我加载我的应用程序时,它总是向我显示完整的令牌,而不是空字符串或空值。

阅读时,显然它与读写周期有关?但即使我离开它一段时间,钥匙仍然存在。这是模拟器问题吗?

不管是什么原因,我该如何解决这个问题?

4

2 回答 2

22

这是首先缓存内存的模拟器问题。它只发生在 xcode 中,不应该发生在设备上。

于 2013-05-20T18:14:50.593 回答
7

你打电话吗

[[NSUserDefaults standardUserDefaults] synchronize];

密钥被删除后?也许您没有将更改持久化到数据库中。

于 2013-09-09T20:19:41.933 回答