Я видел здесь что-то 1 , в котором говорится, что я могу удалить эти ошибки в xcode 3, изменив метод, подобный - (IBAction) shakeShakeShake на - (IBAction) shakeShakeShake (id) sender
Я использую iphone SDK 3.0 и XCode 3.2.1 на снежном барсе
Мои ошибки:
Classes / MainViewController.m: 156: предупреждение: «MainViewController» может не отвечать на «-shakeShakeShake»
/ Пользователи / temp / Рабочий стол / src / Таймер обратного отсчета (приложение-утилита) /Classes/MainViewController.m:156:0 / Пользователи / temp / Desktop / src / Таймер обратного отсчета (приложение-утилита) / Классы / MainViewController. m: 156: предупреждение: (Сообщения без соответствующей сигнатуры метода
Classes / MainViewController.m: на верхнем уровне:
Classes / MainViewController.m: 467: предупреждение: неполная реализация класса 'MainViewController'
Classes / MainViewController.m: 467: предупреждение: определение метода для -pickerView: не найдено
Classes / MainViewController.m: 467: предупреждение: определение метода для '-shakeShakeShake:' не найдено
----- (извините за длинные сообщения об ошибках, я попытался сократить их, удалив информацию о компиляторе и пути) ---
Я пытался добавить такие вещи, как
-(void)shakeShakeShake: (id) sender ;
в качестве прототипа для файла .h и файла .m
- (IBAction) shakeShakeShake: (id) sender {
dimView.alpha = 0.0f;
}
Внесение этих изменений приведет к тому, что предупреждение исчезнет, но когда я запущу свою программу и выполню эту функцию, она выйдет в Springboard с консольным сообщением:
[MainViewController shakeShakeShake]: нераспознанный селектор отправлен на экземпляр 0x1213a20
2009-12-21 02: 19: 17.389 Таймер обратного отсчета (служебное приложение) [43704: 207] * Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «* - [MainViewController shakeShakeShake]: не распознано селектор отправлен на экземпляр 0x1213a20 '
Когда я изменяю функцию обратно на - (IBAction) shakeShakeShake {
(даже если я оставляю стиль прототипа с помощью: (id) sender), программа (простой таймер утилиты) работает нормально и не выдает ошибок консоли.
Кажется, я не могу понять, что я делаю неправильно, но меня всегда учили убирать предупреждения, если это возможно, поскольку они могут указывать на проблемы, которые появляются позже и их трудно найти.
Кто-нибудь может указать мне правильное направление здесь? большое спасибо за ваше терпение, я все еще новичок в этом! ; -)
Спасибо, Piesia
Кстати, ShakeShakeShake называется здесь:
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.type == UIEventSubtypeMotionShake) {
// Ваш код здесь
[self shakeShakeShake];
}
}
---- сообщения об ошибках следуют
Classes / FlipsideViewController.m: 401: предупреждение: неполная реализация класса 'FlipsideViewController'
Classes / FlipsideViewController.m: 401: предупреждение: определение метода для -pickerView: не найдено
Classes / FlipsideViewController.m: 401: предупреждение: определение метода для '-shakeShakeShake' не найдено