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:» в качестве имени метода для вызова (обратите внимание на двоеточие,:, в имени метода).