Thanks to woz and Bernd Rabe. My solution is this:
//Set volume
id savedVolume = [[NSUserDefaults standardUserDefaults] objectForKey:@"GameVolume"];
if (savedVolume == nil) //Check if volume not already saved (e.g. new install)
{
//Set default volume to 1.0
float defaultVolume = 1.0;
[[ApplicationController controller].soundManager setGlobalVolume: defaultVolume];
[[NSUserDefaults standardUserDefaults] setFloat:defaultVolume forKey:@"GameVolume"];
} else {
float savedVolume = [[NSUserDefaults standardUserDefaults] floatForKey:@"GameVolume"];
[[ApplicationController controller].soundManager setGlobalVolume: savedVolume];
}
Does that look safe enough?