如何在iOS上设置两个按钮来打开/关闭振动?

时间:2012-08-04 02:36:47

标签: ios vibrate

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

帮助!!!这段代码有什么问题吗?

1 个答案:

答案 0 :(得分:4)

您同步调度队列,因此调用线程会等待执行完成(这种情况从未发生,因为您的for循环永远不会停止)。请改用dispatch_async