Ответ 1
"Конструктор интерфейсов".
До Xcode 4 файлы интерфейса (XIBs и NIB) были отредактированы в отдельной программе Interface Builder, поэтому префикс.
IBAction
определяется как void
, а IBOutlet
- ничто. Это просто подсказки для интерфейса Builder при разборе файлов, чтобы сделать их доступными для подключений.
Чтобы добавить ссылку, внутри AppKit/NSNibDeclarations.h вы найдете следующее:
#ifndef IBOutlet
#define IBOutlet
#endif
#ifndef IBAction
#define IBAction void
#endif
Итак, на самом деле, код выглядит следующим образом:
@interface ...
{
IBOutlet NSTextField *label;
}
- (IBAction)buttonPressed:(id)sender;
@end
Будет преобразовано в:
@interface ...
{
NSTextField *label;
}
- (void)buttonPressed:(id)sender;
@end
Препроцессором, даже до того, как компилятор увидит его. Эти ключевые слова действовали так же, как подсказки для Interface Builder.