2014-01-06 74 views
1

我在應用程序中有多個聲音。我想在設置中設置切換開關以關閉這些聲音。這是執行聲音的代碼。切換開關以關閉應用程序聲音

- (void) soundEventDidHappen:(NSString*)eventName { 
//check dictionary of sounds.. if there is a corresponding sound for this event name, play it 

if ([[soundIDForEventString allKeys] containsObject:eventName]) { 
    AudioServicesPlaySystemSound ([[soundIDForEventString objectForKey:eventName] intValue]); 
} 
+0

是什麼 – rmaddy

+0

問題是if/else語句對於切換開關是什麼? – user3167213

+0

您是否閱讀過有關使用設置包和「NSUserDefaults」的文檔'?你知道如何獲得切換值嗎? – rmaddy

回答

1

你可以做一個簡單的切換是這樣的:

bool isToggled; 

- (IBAction) toggleSound{ 
    if(isToggled){ 
     isToggled = NO; //sets isToggled to false if it's already true 
    } 
    else{ 
     isToggled = YES; //sets isToggled to true if it's already false 
    } 
} 

,然後你可能只是這樣做:

- (void) soundEventDidHappen:(NSString*)eventName { 
    //check dictionary of sounds.. if there is a corresponding sound for this event name, play  it 
    if(isToggled){ 

     if ([[soundIDForEventString allKeys] containsObject:eventName]) { 
     AudioServicesPlaySystemSound ([[soundIDForEventString objectForKey:eventName] intValue]); 
     } 
    } 
} 

用來播放聲音,如果isToggled是真實的。在viewDidLoad方法

[[NSUserDefaults standardUserDefaults] setBool:isToggled forKey:@"soundEnabled"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

//use this to save 

然後,你可以用這個來獲取值(最有可能的地方:然後你可以使用NSUserDefaults如果你想保存布爾對未來

isToggled = [[NSUserDefaults standardUserDefaults] boolForKey:@"soundEnabled"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 
+0

Jojodomo,感謝這個答案,它幫助了巨大。 NSUserDefaults會是什麼? – user3167213

+0

@ user3167213剛剛更新了我的答案! – Jojodmo