如何在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循环放在了线程中,对吧?

救命!!!这个代码有什么问题吗?

同步调度队列,因此调用线程等待执行完成(这从未发生,因为for循环从未停止)。请改用dispatch_async

最新更新