Для методов Objective-C нет "видимости", за исключением того, где вы прикрепляете объявление во время компиляции.Во время выполнения они все одинаковы.
Во-первых, методы действия принимают аргумент - отправителя.Таким образом, ваш метод действительно должен быть объявлен как:
- (IBAction)edit:(id)sender;
Обратите внимание, что IBAction
на самом деле # определено как void
.Используется только Интерфейсным Разработчиком.Поскольку вы делаете все программно, вы можете использовать void
.Конечно, возникает вопрос о том, почему вы делаете вещи программно, поскольку это почти всегда пустая трата времени, но ... за рамками этого вопроса.
В любом случае, да, это должноработать надежно.Независимо от того, объявлен ли метод в заголовке или нет, во время выполнения разница не имеет значения.
Учитывая, что ваши сбои довольно прерывисты, это больше похоже на то, что у вас может быть проблема с управлением памятью (или другой скрытый сбой).Вы строили и анализировали свой код?Есть журнал сбоев?