Я очень новичок в разработке iPhone. Я часто встречаю IBAction
, IBOutlet
и т.д. При чтении кода Objective-C. Что означает IB
?
Что означает IB в IBAction, IBOutlet и т.д.?
Ответ 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.
Ответ 2
IB означает построитель интерфейса, поскольку вы соединяете объекты с помощью конструктора интерфейса.
Ответ 3
IBAction и IBOutlet являются интерфейсами Builder Constants IBOutlet: класс Controller может ссылаться на объект в файле nib с помощью специальной константы IBOutlet.
IBActions: объекты интерфейса в файле nib могут быть настроены на запуск определенных методов в классе контроллера с использованием IBAction в качестве возвращаемого типа метода.