Settings Bundle切换开关只返回YES



我在我的应用程序中添加了一个由多个切换开关组成的设置包,它被用来显示不同的图像,这取决于哪个切换开关是活跃的。这在第一次运行良好,但一旦值被设置为YES,它总是返回YES。

我已经使用下面的

删除了NSUserDefaults中的数据
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
    [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
如果在每次启动应用程序之前更改设置,则

有效。(不理想)。有没有人遇到过这种情况,知道如何更新和保存这些值?下面是我的代码,我正在检索和看到BOOL值

BOOL setImageOne = (BOOL)[[NSUserDefaults standardUserDefaults]valueForKey:@"ladbrokes"];
BOOL setImageTwo = (BOOL)[[NSUserDefaults standardUserDefaults]valueForKey:@"williamHill"];
if (setImageOne) {
    self.clientLogoImageView.image = [UIImage imageNamed:@"clientOneLogo.png"];
}
if (setImageTwo) {
    self.clientLogoImageView.image = [UIImage imageNamed:@"clientTwoLogo.png"];
}
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];

bool值将存储在NSNumber对象中,因为基本类型不能存储在Objective-C集合类中,所以下面的语句:

BOOL setImageOne = (BOOL)[[NSUserDefaults standardUserDefaults]valueForKey:@"ladbrokes"];

基本相同
NSNumber *boolObj = @(NO);
BOOL b = (BOOL)boolObj;      // b == YES

当你的意图是:

BOOL b = [boolObj boolValue];   // b == NO

[NSUserDefaults boolForKey]代替

相关内容

  • 没有找到相关文章

最新更新