仅设置捆绑开关 returns 是
Settings Bundle toggle switch only returns YES
我在我的应用程序中添加了一个设置包,其中包含许多切换开关,它用于根据激活的切换显示不同的图像。这第一次工作正常,但一旦将值设置为 YES,它总是 returns 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]
。
我在我的应用程序中添加了一个设置包,其中包含许多切换开关,它用于根据激活的切换显示不同的图像。这第一次工作正常,但一旦将值设置为 YES,它总是 returns 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]
。