2012-08-04 2 views
1

Comment régler deux boutons pour activer/désactiver les vibrations sur iOS?Comment régler deux boutons pour activer/désactiver les vibrations sur iOS?

C'est ce que je voulais faire:

@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);} 

Malheureusement, quand je presse la « regardant fixement vibrant » bouton, il ne peut pas sauter hors de la boucle, mais je ne mets la pour la boucle dans un fil, non?

Aidez-moi !!! Quelque chose ne va pas avec ce code?

+0

? Le même bouton appelé "startVibrating"? –

+0

stopVibrating et startVibrating les deux sont des boutons sur la vue –

Répondre

4

Vous répartissez la file d'attente de manière synchrone, de sorte que le thread appelant attend jusqu'à ce que l'exécution se termine (ce qui n'arrive jamais car la boucle ne s'arrête jamais). Utilisez dispatch_async à la place. Ce qui appelle «` stopVibrating` »?

+0

merci, je l'ai, et ça fonctionne parfaitement. –

+0

@JerryZhu Dans ce cas, vous devez cocher la case grise à côté de la réponse pour l'accepter comme correcte. – JustSid

+0

cela fonctionnera-t-il si la vibration est désactivée dans les paramètres aller iPhone – madLokesh

Questions connexes