Time for action – storing settings in NSUserDefaults
Right now, the audio settings are not saved across the game launches because we only save them in instance variables in memory. To fix this, we're going to save them in NSUserDefaults
and load them when the game starts, as follows:
Open the
AudioManager.m
file and add the following#define
statements to define the keys we'll use to save and load the corresponding audio setting:#define kSoundKey @"AudioManager_Sound" #define kMusicKey @"AudioManager_Music"
Scroll down to the
toggleSound
method and add the code to save the sound setting at the end of the method, right after it's changed:-(void)toggleSound { _isSoundEnabled = !_isSoundEnabled; [[NSUserDefaults standardUserDefaults] setBool:_isSoundEnabled forKey:kSoundKey]; [[NSUserDefaults standardUserDefaults] synchronize]; }
Also, add the code to save the music setting at the end of the
toggleMusic
method:-(void)toggleMusic { //..skipped.. [...