gpt4 book ai didi

objective-c - 在 nsuserdefaults 中保存 bool

转载 作者:太空狗 更新时间:2023-10-30 03:34:08 25 4
gpt4 key购买 nike

当我的应用开始播放音乐时:

-(void)playBgMusic {

NSString *path = [[NSBundle mainBundle] pathForResource:@"bgmusic" ofType:@"aif"];
theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
theAudio.delegate = self;
[theAudio play]; }

但是他应该能够通过按下按钮来关闭音乐,如果他再次按下按钮,音乐应该会再次打开。我有:

-(IBAction)check {


if (isquiet == NO) {

[theAudio stop];

isquiet = YES;

defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:YES forKey:@"stringKey"];


}

else {

[self playBgMusic];

isquiet = NO;

defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:NO forKey:@"stringKey"]; } }

我好像没看懂。现在它在我的第一个 ViewController 中工作,我可以打开和关闭音乐但是当我在播放音乐时转到另一个 viewController,然后再次返回并按下按钮,音乐不会停止,当我多次按下它时音乐第二次播放并重叠。

还有什么问题吗?

最佳答案

无需将其包装在 NSNumber 中,有一些方便的方法:

要设置 BOOL,请使用:

[userDefaults setBool:YESorNO forKey:@"yourKey"];

要访问它,请使用:

[userDefaults boolForKey:@"yourKey"];

[编辑以回答您的其他问题]

不确定为什么要使用 NSUserDefaults - 对于您要实现的目标来说似乎没有必要?下面是我要为可以开始/停止音乐的按钮做的事情:

-(IBAction)check 
{
if (isQuiet)
{
// Play music
// Change the button to indicate it is playing...
} else
{
// Stop music
// Change the button to indicate it has stopped...
}
// Set your isQuiet to be the opposite of what it was when the button was clicked
isQuiet = !isQuiet;
}

关于objective-c - 在 nsuserdefaults 中保存 bool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5587505/

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