Создание неправильно названного селектора приводит к ошибке времени компиляции - PullRequest
7 голосов
/ 24 июня 2011

В target-c, как я могу заставить селектор с неправильным именем генерировать ошибку времени компиляции?

Например, скажем, у меня есть

 @selector(some_misnamed_func)

И у моего класса есть этот член

  -(void)some_func

Я хочу, чтобы компилятор target-c сказал мне, что он не может найти эту функцию во время компиляции, а не генерирует исключение во время выполнения только при запуске этого кода.

Ответы [ 2 ]

10 голосов
/ 24 июня 2011

Скомпилируйте ваш код с помощью -Wundeclared-selector или Необъявленный селектор в настройках сборки XCode. Поскольку это только предупреждение, вы можете связать его с -Werror (соответственно Рассматривать предупреждения как ошибки в XCode), чтобы это предупреждение (и все другие предупреждения) действовало как ошибка и эффективно прерывало компиляцию.

6 голосов
/ 24 июня 2011

Компилятор может предупредить вас, если в видимых файлах такого селектора нет.И если вы включите обработку предупреждений как ошибок, вы получите приятную ошибку.Загвоздка в том, что если вы ошиблись в выборе правильного селектора для какого-либо другого существующего селектора (даже в совершенно другом классе), компилятор ничего не скажет.Это связано с поздним связыванием 1002 *, компилятор не может знать все сообщения, на которые класс будет отвечать во время выполнения.

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