遇到NSUserDefault问题

| 我试图在程序中保存一些首选项,但我似乎无法使NSUserDefaults正常工作。如果有人可以看看我的代码,看看是否有任何错误,将不胜感激
NSString *kGameIsPaused = @\"gameGameIsPaused\";
NSString *kSoundOn = @\"gameSoundOn\";
NSString *kMusicOn = @\"gameMusicOn\";
NSString *kHighScore = @\"gameHighScore\";

- (void)saveGameState
{
[[NSUserDefaults standardUserDefaults] setBool:gameIsPaused forKey:kGameIsPaused];
[[NSUserDefaults standardUserDefaults] setBool:soundOn forKey:kSoundOn];
[[NSUserDefaults standardUserDefaults] setBool:musicOn forKey:kMusicOn];
[[NSUserDefaults standardUserDefaults] setInteger:highScore forKey:kHighScore];

}

-(void)loadGameState
{

gameIsPaused = [[NSUserDefaults standardUserDefaults] boolForKey:kGameIsPaused];
soundOn = [[NSUserDefaults standardUserDefaults] boolForKey:kSoundOn];
musicOn = [[NSUserDefaults standardUserDefaults] boolForKey:kMusicOn];
highScore= [[NSUserDefaults standardUserDefaults] integerForKey:kHighScore];

if (soundOn == NO) {
    [soundToggle setImage:[UIImage imageNamed:@\"SoundOFF.png\"] forState:UIControlStateNormal];
}

if (musicOn == NO) {
    [musicToggle setImage:[UIImage imageNamed:@\"MusicOff.png\"] forState:UIControlStateNormal];
}

}
他们每次我运行loadGameState方法时,都会得到默认值,好像没有要引用的键一样。     
已邀请:
在saveGameState的内部,我建议您添加一个与您的默认设置保持一致的同步。如果您的游戏崩溃了,或者您正在停止调试器或其他任何错误,则可能无法正确保存它们。
- (void)saveGameState
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setBool:gameIsPaused forKey:kGameIsPaused];
    [defaults setBool:soundOn forKey:kSoundOn];
    [defaults setBool:musicOn forKey:kMusicOn];
    [defaults setInteger:highScore forKey:kHighScore];
    [defaults synchronize];
}
    

要回复问题请先登录注册