Что описывает «Аутлет» лучше всего в target-c / Cocoa? - PullRequest
14 голосов
/ 27 февраля 2009

Может ли кто-нибудь объяснить понятным людям, что такое "Аутлет"?

Ответы [ 7 ]

26 голосов
/ 27 февраля 2009

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

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

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

The outlet relationship.
(источник: boredzo.org )

11 голосов
/ 28 февраля 2009

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

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

альтернативный текст http://img27.imageshack.us/img27/5512/picture820090228.png

В этом примере делегат является переменной-членом UIApplication и также является IBOutlet.

10 голосов
/ 27 февраля 2009

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

5 голосов
/ 25 августа 2009

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

#ifndef IBOutlet
#define IBOutlet
#endif

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

5 голосов
/ 27 февраля 2009

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

3 голосов
/ 28 февраля 2009

IBOutlet - это символ, который указывает Интерфейсному Разработчику, что переменная экземпляра объекта делится на

IBOutlet id ivar_name;

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

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

0 голосов
/ 20 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...