Что описывает "Outlet" лучше всего в objective-c/Cocoa?

Может кто-нибудь объяснить по-человечески понятным образом, что такое "Выход"?

Ответы

Ответ 1

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

Ответ 2

Это переменная экземпляра, которая отображается в интерфейсе Builder, так что вы можете использовать IB для подключения другого объекта к розетке.

Когда вы загружаете наконечник, система nib-load выполнит необходимую магию, чтобы убедиться, что в каждой розетке отображается правильный объект.

Изменить: я намеревался написать полное сообщение в блоге об этом образе (я изменил свое мнение после окончания изображения), но даже в одиночку он должен помочь прояснить возможности для людей. Вот вы:

Выходные отношения. http://boredzo.org/images/The-outlet-relationship-small.png

Ответ 3

Из кодовой точки зрения и IBOutlet является лишь подсказкой для Interface Builder. Это фактически макрос, который компилируется, ну, вообще ничего. То есть компилятор полностью удаляется при компиляции.

Но Interface Builder может сканировать ваш код для IBOutlet, поэтому, щелкнув правой кнопкой мыши на объекте в IB, вы увидите все выходы, которые вы могли бы подключить к другим объектам.

alt text http://img27.imageshack.us/img27/5512/picture820090228.png

В этом примере delegate является переменной-членом UIApplication, и это тоже IBOutlet.

Ответ 4

Я бы сказал, что это мост, который соединяет ваши объекты пользовательского интерфейса с кодом, который их использует. Как и название, они предоставляют возможность "подключить" ваш пользовательский интерфейс к вашему коду.

Ответ 5

Ключевое слово IBOutlet определяется следующим образом:

#ifndef IBOutlet
#define IBOutlet
#endif

IBOutlet не делает абсолютно ничего, что касается компилятора. Его единственная Цель состоит в том, чтобы показать подсказку Interface Builder, что это переменная экземпляра, которая была собирается подключиться к объекту в наконечнике. Любая переменная экземпляра, которую вы создаете и хотите подключиться к объекту в файле nib должно предшествовать ключевое слово IBOutlet.

Ответ 6

IBOutlet - это символ, указывающий на Interface Builder, что переменная экземпляра объекта делится как

IBOutlet id ivar_name;

должен быть представлен как выход экземпляра связанного класса. Это позволяет вам графически подключать объекты в Interface Builder, чтобы после загрузки NIB (т.е. Когда объект отправляется сообщением -awakeFromNib), значение ivar_name будет указателем на объект, который вы выбрали как значение выхода в Interface Builder.

С точки зрения языка Objective-C IBOutlet ничего не значит.

Ответ 7

Вывод - это переменная экземпляра в вашем коде (в X-коде), которому может быть назначена ссылка на объект пользовательского интерфейса (в Interface Builder). Вы вставляете объект пользовательского интерфейса в переменную экземпляра. Назначение задается в файле NIB, созданном Interface Builder.