Что такое «неопределенный макрос»? - PullRequest
5 голосов
/ 22 августа 2008

Я изучаю цель-C и какао. В учебнике Apple, над которым я работаю, есть примечание:

IBOutlet - это неопределенный макрос, который препроцессор C удаляет во время компиляции.

Мне любопытно - что за неопределенный макрос?

Ответы [ 5 ]

8 голосов
/ 22 августа 2008

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

8 голосов
/ 22 августа 2008
#define IBOutlet

Всякий раз, когда IBOutlet используется в тексте программы, он будет заменен ничем вообще.

7 голосов
/ 05 сентября 2008

Нулевой макрос - это макрос, который ничем не будет заменен (будет удален) препроцессором. Его роль - дать подсказку о чем-то в коде, например:

#define IN
#define OUT
#define INOUT

int myFunction(IN char *name, INOUT char *address, OUT char *phone);

Это объявление предполагает, что name является входной переменной для функции, address является как входной, так и выходной, phone является выходной переменной.

0 голосов
/ 28 сентября 2008

Ох, и пока я в этом. Опция двойного щелчка (попытка) откроет документацию для символа двойного щелчка.

0 голосов
/ 28 сентября 2008

Также - если вы не знаете, как что-либо определено - команда дважды щелкните по нему, и Xcode откроет определение в исходном исходном файле.

...