2012-08-04 71 views
1

如何設置兩個按鈕來打開/關閉iOS上的振動?如何設置兩個按鈕來打開/關閉iOS的振動?

這就是我要怎樣做:

@property (nonatomic) BOOL vibeIsOn; 

- (IBAction)startVibrating:(id)sender { 
dispatch_queue_t vibeQueue = dispatch_queue_create("vibe", NULL); 
dispatch_sync(vibeQueue, ^{ 

    for (;!self.vibeIsOn;) 
    { 
     AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 

    } 
}); 
dispatch_release(vibeQueue);} 

- (IBAction)stopVibrating:(id)sender { 
self.vibeIsOn = YES; 
AudioServicesRemoveSystemSoundCompletion(kSystemSoundID_Vibrate);} 

不幸的是,當我按下「盯着振動」按鈕,就不能跳出for循環,但我沒有把for循環在一個線程中,對嗎?

幫助!!!這段代碼有什麼問題嗎?

+0

什麼叫「'stopVibrating'」?與「'startVibrating'」相同的按鈕? – 2012-08-04 02:40:32

+0

stopVibrating和startVibrating都是視圖上的按鈕 – 2012-08-04 03:15:27

回答

4

您同步分派隊列,因此調用線程將等待,直到執行完成(從未發生,因爲您的循環從不停止)。改爲使用dispatch_async

+0

謝謝,我明白了,它完美的工作。 – 2012-08-04 14:54:03

+0

@JerryZhu在這種情況下,您應該檢查答案旁邊的灰色複選標記,將其作爲正確答案接受。 – JustSid 2012-08-04 21:19:40

+0

它會工作,如果在設置中關閉振動去iPhone – madLokesh 2012-08-25 06:27:56

相關問題