2011-03-10 7 views
1

내 앱에는 옵션 페이지가 있습니다. 그것은 당신이 변경할 수있는 3 가지를 가지고 있습니다 : 반전 된 컨트롤 (사수 게임) 스위치, 효과 레벨의 볼륨 슬라이더, 음악 레벨의 볼륨 슬라이더. 몇 가지 도움이 필요해. 나는 객관적인 c에 새로운 (3 주)이고, 나는 NSUserDefaults를 저장하는 도움을 필요로한다. 볼륨 슬라이더에 대한 코드가 있지만 작동하지 않습니다. 나는 또한 전환에 관해서 무엇을해야하는지 전혀 모른다. 나중에 게임 도중이 데이터를 확인해야합니다. 여기에 내가 다음 OPTIONS.mIphone NSUserDefaults 문제가 있으십니까?

-(IBAction)musicVolumeChanged { 

    NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults]; 
    NSString *musicVolume = musicVolumeSlider.value; 
    //theAudio.volume = musicVolume; 
    [userPreferences setObject:musicVolume forKey:@"musicVolume"]; 
} 

-(IBAction)effectsVolumeChanged { 

    NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults]; 
    NSString *effectsVolume = effectsVolumeSlider.value; 
    //theAudio.volume = effectsVolume; 
    [userPreferences setObject:effectsVolume forKey:@"effectsVolume"]; 

} 

그리고 이 게임을하는 동안 값에 액세스하려고 노력 코드입니다, 내가 가진 : Igunner.m에게 다음

NSString *effects_Volume = [[NSUserDefaults standardUserDefaults] 
              stringForKey:@"effectsVolume"]; 
theAudio.volume = effects_Volume; 
[theAudio play]; 

과 내가 가지고있는 음악 볼륨 :

NSString *music_Volume = [[NSUserDefaults standardUserDefaults] 
              stringForKey:@"musicVolume"]; 
theAudio.volume = music_Volume; 
[theAudio play]; 

위의 각 샘플 코드에서 하나의 오류가 있습니다. 값을 NSUserDefaults에 할당하기 위해 문자열에 슬라이더 값을 할당 할 때 오류가 발생합니다. "초기화에서 호환되지 않는 유형"및 값을 가져 오는 데 "setVolume의 인수 1에 대해 호환되지 않는 유형"이라는 오류가 발생합니다.

내가 뭘 잘못하고 있는지 말해 주시고, 알고 계시면 스위치 상태가 저장되고 검색되도록 도와주세요.

+1

Audio.volume이 NSString입니까? 나는 그것을 심각하게 의심한다. 하지만 오디오가 무엇인지 말해주지 않아서 해결책을 드릴 수 없습니다. –

답변

0

여기서 float을 string으로 캐스트해야합니다.

NSString *musicVolume = musicVolumeSlider.value; 

당신이

theAudio.volume = music_Volume; 

플로트 또는 문자열의

[[NSUserDefaults standardUserDefaults]setFloat:musicVolume forKey:@"musicVolume"]; 

instand를 사용하는 문자열을 캐스팅해야 athere

1

NSString *effectsVolume = [NSString stringWithFormat:@"%f",effectsVolumeSlider.value]; 
시도

slider.valuefloat을 반환하므로 문자열에 직접 할당 할 수 없습니다. 이것은 사용자 기본값에 값을 할당하는 것과 관련된 문제를 해결합니다.