gpt4 book ai didi

ios - NSUserDefault 值未被正确识别

转载 作者:行者123 更新时间:2023-11-29 02:52:19 25 4
gpt4 key购买 nike

在这个应用程序中,我试图使声音和振动按钮在两个图像(即灰色和颜色)之间切换,具体取决于声音是否打开。单击它时,它应该翻转图像并从灰色变为彩色。我已经设法使其翻转一次,从彩色变为灰色,但是当我再次单击它时,它不会返回彩色,请帮我解决这个问题。提前致谢。这是我的 AppDelegate.m

if(![defaults objectForKey:@"firstTime"])
{
//Application is running the first time
//Do first time stuff

[defaults setBool:NO forKey:@"firstTime"];
[defaults setBool:YES forKey:@"musicKey"];
[defaults setBool:YES forKey:@"soundKey"];
[defaults setBool:YES forKey:@"vibrationKey"];
[defaults setBool:YES forKey:@"linkKey"];
[defaults synchronize];

}
else{

[defaults setBool:YES forKey:@"firstTime"];

}

这是我的设置 View Controller ,实际的翻转将在其中发生:

-(void)viewDidLoad
{ [super viewDidLoad];
[self checkValues];
[self makeSettingsPage];
self.scrollView.contentSize=[_outerView frame].size;

}


-(void)makeSettingsPage
{
RoundButton *about=[[RoundButton alloc]initWithColor:color1 WithText:@"ABOUT"];
RoundButton *privacyPolicy=[[RoundButton alloc]initWithColor:color2 WithText:@"PRIVACY \n POLICY"];
RoundButton *termsOfUse=[[RoundButton alloc]initWithColor:color2 WithText:@"TERMS \n OF USE"];

about.center=CGPointMake(29, 451);
privacyPolicy.center=CGPointMake(29, 481);
termsOfUse.center=CGPointMake(29, 511);
[self.scrollView setContentMode:UIViewContentModeScaleAspectFit];


self.scrollView.frame= self.view.frame;
// [scrollView addSubview:viewToAdd];
// scrollView.contentSize = viewToAdd.frame.size;
//

//Content Size is size of the view inside the scrollview




self.containerView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageWithContentsOfFile:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"background_letter.png"]]];

[self.containerView addSubview:about];
[self.containerView addSubview:privacyPolicy];
[self.containerView addSubview:termsOfUse];

[self.scrollView addSubview:_containerView];
// self.scrollView.contentSize;_containerView.frame.size;


[self.outerView addSubview:self.scrollView];



}


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
}
return self;
}




- (IBAction)musicAction:(id)sender {

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
bool isMusicOn=[defaults boolForKey:@"musicKey"];

if (!isMusicOn) {
UIImage *btnImage1 = [UIImage imageNamed:@"musicgrey.png"];
[sender setImage:btnImage1 forState:UIControlStateNormal];

}
else{

UIImage *btnImage1 = [UIImage imageNamed:@"musicColor.png"];
[sender setImage:btnImage1 forState:UIControlStateNormal];

}

}

- (IBAction)soundAction:(id)sender
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
bool isItOn=[defaults boolForKey:@"soundKey"];

if (!isItOn) {
UIImage *btnImage1 = [UIImage imageNamed:@"soundcolors.png"];
[sender setImage:btnImage1 forState:UIControlStateNormal];

}
else{

UIImage *btnImage1 = [UIImage imageNamed:@"soundgrey.png"];
[sender setImage:btnImage1 forState:UIControlStateNormal];

}



}

- (IBAction)vibrationAction:(id)sender {

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
bool isItOn=[defaults boolForKey:@"vibrationKey"];

if (!isItOn) {
UIImage *btnImage1 = [UIImage imageNamed:@"virationColor.png"];
[sender setImage:btnImage1 forState:UIControlStateNormal];

}
else{

UIImage *btnImage1 = [UIImage imageNamed:@"vibrationgrey.png"];
[sender setImage:btnImage1 forState:UIControlStateNormal];

}



}

- (IBAction)pushAction:(id)sender {
}

- (IBAction)linkAction:(id)sender {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
bool isItOn=[defaults boolForKey:@"linkKey"];

if (!isItOn) {
UIImage *btnImage1 = [UIImage imageNamed:@"colorfulfacebook.png"];
[sender setImage:btnImage1 forState:UIControlStateNormal];

}
else{

UIImage *btnImage1 = [UIImage imageNamed:@"grayfacebook.png"];
[sender setImage:btnImage1 forState:UIControlStateNormal];

}


}

-(void)checkValues
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if([defaults boolForKey:@"musicKey"])
{
//Load Active Image for it
[self.musicButton setImage:[UIImage imageNamed:@"musicColor.png"]
forState:UIControlStateNormal];

}
else{
//Load Gray Image
[self.musicButton setImage:[UIImage imageNamed:@"musicgrey.png"]
forState:UIControlStateNormal];

}

if([defaults boolForKey:@"soundKey"])
{
//Load Active Image for it
[self.soundButton setImage:[UIImage imageNamed:@"soundcolors.png"]
forState:UIControlStateNormal];

}
else{
//Load Gray Image
[self.soundButton setImage:[UIImage imageNamed:@"soundgrey.png"]
forState:UIControlStateNormal];

}

if([defaults boolForKey:@"vibrationKey"])
{
//Load Active Image for it
[self.vibrationButton setImage:[UIImage imageNamed:@"virationColor.png"]
forState:UIControlStateNormal];

}
else{
//Load Gray Image
[self.vibrationButton setImage:[UIImage imageNamed:@"vibrationgrey.png"]
forState:UIControlStateNormal];

}

if([defaults boolForKey:@"linkKey"])
{
//Load Active Image for it
[self.linkButton setImage:[UIImage imageNamed:@"colorfulfacebook.png"]
forState:UIControlStateNormal];

}
else{
//Load Gray Image
[self.soundButton setImage:[UIImage imageNamed:@"grayfacebook.png"]
forState:UIControlStateNormal];

}



}


@end

最佳答案

一方面,这不是设置默认值的方法:

if(![defaults objectForKey:@"firstTime"])

而是调用 registerDefaults:。这就是它的用途。

关于ios - NSUserDefault 值未被正确识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24354014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com