как связать вибрацию с нажатием кнопки - PullRequest
1 голос
/ 14 декабря 2010

Мне нужно следующий код

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

и doVibrate, и вибрация принадлежат к одному классу. Но когда я нажимаю кнопку, связанную с doVibrate, это устройство не вибрируетЯ импортировал AudioToolbox/AudioToolbox.h и AVFoundation/AVFoundation.

Может кто-нибудь сказать мне, где я не прав.Спасибо

1 Ответ

2 голосов
/ 14 декабря 2010

IBActions обычно имеют следующую форму:

- (IBAction)vibrate:(id)sender;

Обратите внимание, что следующие 3 метода различны:

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

Вот что я бы сделал. В вашем файле .h определите следующий метод:

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

В вашем файле .m сделайте следующее:

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

Теперь, когда вы сохраняете ваши файлы .h и .m и переключаетесь обратно на файл nib / xib в Интерфейсном Разработчике, может появиться жёлтое предупреждающее сообщение о том, что «вибрация» больше не определяется в «имени вашего класса». Вот'. Это нормально, поскольку следующее должно устранить эту ошибку. Удерживая нажатой клавишу «Control» (или щелчок правой кнопкой мыши) на кнопке, перетащите ее в класс контроллера и выберите «vibrate:» в качестве имени метода для вызова (обратите внимание на двоеточие,:, в имени метода).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...