2010-12-14 32 views
1

Je dois le code suivantcomment associer la vibration avec un bouton cliquez sur

-(IBAction)doVibrate{ 
    [self vibrate]; 
} 
-(void)vibrate{ 
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 
} 

à la fois doVibrate et vibrent sont est même classe .mais quand je suis cliqué sur le bouton associé au dispositif doVibrate de ce ne vibre pas. J'ai importé le AudioToolbox/AudioToolbox.h et AVFoundation/AVFoundation. Est-ce que quelqu'un peut me dire où je me trompe? Merci

Répondre

2

IBActions sont généralement de la forme suivante:

- (IBAction)vibrate:(id)sender; 

Notez que les 3 méthodes suivantes sont toutes différentes:

- (IBAction)vibrate:(id)sender; 
- (IBAction)vibrate; // no sender argument 
- (void)doVibrate; 

Voici ce que je ferais. Dans votre fichier .h, définir la méthode suivante:

- (IBAction)vibrate:(id)sender; 
// - (IBAction)vibrate; comment out this method 

Dans votre fichier .m, procédez comme suit:

- (IBAction)vibrate:(id)sender { 
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 
} 

Maintenant, lorsque vous enregistrez votre .h et les fichiers .m, et le commutateur retour à votre fichier nib/xib dans Interface Builder, il peut afficher un message d'avertissement jaune indiquant que «vibrer» n'est plus défini dans «votre nom de classe ici». Ce n'est pas grave, car ce qui suit devrait supprimer cette erreur. Cliquez sur le bouton en maintenant la touche Contrôle enfoncée (ou cliquez avec le bouton droit de la souris) sur le bouton et faites-le glisser vers votre classe de contrôleur et choisissez "vibrate:" comme nom de la méthode à appeler (notez les deux points,: dans le nom de la méthode).

+0

Merci pour la réponse. En fait, j'essayais de vibration dans l'iPod Touch mais comme nous le savons ipods ne vibre pas donc il n'y a pas de problème. –