我有一个包含单个项目的设置包。该项目是一个设置为NO的开关。使用NSUserDefaults不起作用的应用程序设置
我正在使用它来允许用户注销我想要创建的应用程序。但是,当用户打开应用程序时,转到设置并选择切换到注销时,他们回到应用程序没有任何反应。如果他们回到设置再次切换,然后回去,然后如果报名进入corrently ...
这几乎就像设置不是第一次读,但我不知道如何解决这个问题...
这是我的代码是什么样子
- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
NSNumber *branchString = [settings objectForKey:@"signout"];
NSLog(@"%@", branchString);
if ((branchString != nil) || (branchString != 0)) {
// turn signout back on.
[settings setObject:NO forKey:@"signout"];
[settings synchronize];
}
}
任何帮助,将不胜感激。
您也可以使用短格式@(NO),或者仅使用@NO。 – iamamused
它很难解释,但我会尝试。目前,当我第一次访问NSUSerDefault时,这些值不是可用的。所以当我第一次注销它没有看到。我退出应用程序并再次回到它,然后我的代码工作。是的,我的代码与您的示例有关,但是现在交换机正在被正确重置,从不登出,因为当我第一次使用它时,它会切换回NO。我第二次登录没有任何反应。我不知道为什么会发生这种情况。 – HurkNburkS
@HurkNburkS - 不太关注你,但要记住,在阅读和设置开关值(或者你正在做的任何事情)时你必须打开对象。请参阅我的编辑。 – danh