NSUserDefaults不会删除密钥对象

时间:2013-05-20 00:25:44

标签: login persistence nsuserdefaults

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

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

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

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

(之前我叫[[NSUserDefaults standardUserDefaults] removeObjectForKey:TOKEN];)

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

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

无论原因是什么,我如何解决这个问题?

2 个答案:

答案 0 :(得分:20)

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

答案 1 :(得分:7)

你打电话

[[NSUserDefaults standardUserDefaults] synchronize];
密钥被删除后

?也许您没有将更改保存到数据库中。