Подтвердить что ты не робот

Что означает IB в IBAction, IBOutlet и т.д.?

Я очень новичок в разработке iPhone. Я часто встречаю IBAction, IBOutlet и т.д. При чтении кода Objective-C. Что означает IB?

4b9b3361

Ответ 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 в качестве возвращаемого типа метода.