【发布时间】:2010-10-07 21:29:48
【问题描述】:
从设备上完全卸载应用程序,然后将其加载到调试器中后,我尝试在设置方法中使用 boolForKey 加载标志。该应用程序第一次运行时,我预计布尔值将不存在,因为我刚刚重新安装了该应用程序。我希望从文档中 boolForKey 将因此返回 NO。
我看到相反的情况。 boolForKey 返回 YES,这会影响我的初始用户设置。知道为什么会发生这种情况或解决它的好方法吗?
BOOL stopAutoLogin = [[NSUserDefaults standardUserDefaults] boolForKey:@"StopAutoLogin"];
_userWantsAutoLogin = !stopAutoLogin;
所以 stopAutoLogin 显示为“YES”,这完全出乎意料。
陌生人和陌生人:当我调用 objectForKey:@"StopAutoLogin" 时,我得到了一个 nil 对象,正如预期的那样。只是 boolForKey 返回错误值。所以我把代码改成这样:
// this is nil
NSObject *wrapper = [[NSUserDefaults standardUserDefaults] objectForKey:@"StopAutoLogin"];
// this is YES
BOOL stopAutoLogin = [[NSUserDefaults standardUserDefaults] boolForKey:@"StopAutoLogin"];
【问题讨论】:
-
你能发布你的代码吗?
-
同意 Rits。另外:当您说“设备”时,您是指手机还是模拟器?不要像在手机上那样“删除应用程序”,而是转到菜单并选择“重置内容和设置...”。
-
我的意思是在电话上。我删除了应用程序,确保它从任务栏中消失,然后使用 Xcode 调试器电缆加载它。
-
您是否尝试过像 phooze 建议的那样“重置内容和设置”?当然,在读出值之前,请仔细检查您实际上并没有将 StopAutoLogin 设置为 YES。
-
我认为重置内容和设置适用于模拟器,对吗?该设备是否有类似物?是的,我到处检查密钥并在提到它的地方设置断点,但无济于事。
标签: iphone