IBOutlet и IBAction

Какова цель использования IBAction и IBOutlet в кодировании Objective-C для iPhone, не имеет значения, если я их не использую?

IBAction и IBOutlet – это macros, определенные для обозначения переменных и методов, на которые можно ссылаться в Interface Builder.

IBAction устраняет void а IBOutlet ничего не разрешает, но они означают, что эти переменные и методы могут использоваться в построителе интерфейса для связывания элементов интерфейса с вашим кодом.

Если вы вообще не собираетесь использовать Interface Builder, вам не нужны они в вашем коде, но если вы собираетесь его использовать, вам нужно указать IBAction для методов, которые будут использоваться в IB и IBOutlet для объектов, которые будут использоваться в IB.

Традиционный способ отметить метод, чтобы он появился в Interface Builder, и вы можете перетащить на него соединение, заключалось в том, чтобы метод возвращал тип IBAction. Однако, если вы сделаете свой метод недействительным, вместо этого (IBAction is # define’d будет недействительным) и укажите аргумент (id), метод все еще будет видимым. Это обеспечивает дополнительную гибкость,

Все 3 из них видны из Interface Builder:

 -(void) someMethod1:(id) sender; -(IBAction) someMethod2; -(IBAction) someMethod3:(id) sender; 

Подробные сведения см. В руководстве пользователя Apple Builder. В частности, раздел «Интеграция Xcode».

Вам нужно использовать IBOutlet и IBAction, если вы используете конструктор интерфейса (следовательно, префикс IB) для ваших компонентов графического интерфейса. IBOutlet необходим для связывания свойств в вашем приложении с компонентами в IB, а IBAction используется, чтобы ваши методы могли быть связаны с действиями в IB.

Например, предположим, что вы определили кнопку и метку в IB. Чтобы динамически изменить значение метки, нажав кнопку, вы определите действие и свойство в своем приложении, подобное:

 UILabel IBOutlet *myLabel; -(IBAction) pushme; 

Затем в IB вы подключите myLabel с меткой и подключите метод pushme с помощью кнопки. Вам нужны IBAction и IBOutlet, чтобы эти соединения существовали в IB.

Интерфейс Builder использует их для определения того, какие члены и сообщения могут быть «подключены» к элементам управления интерфейсом, которые вы используете в своем окне / представлении.

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

IBAction и IBOutlets используются для подключения вашего интерфейса, выполненного в Interface Builder, с вашим controllerом. Если вы не будете использовать Interface Builder и полностью создадите свой интерфейс в коде, вы можете создать программу, не используя ее. Но на самом деле большинство из нас используют интерфейс Builder, как только вы захотите получить интерактивность в вашем интерфейсе, вам придется использовать IBActions и IBoutlets.

Outlet – это ссылка от кода к пользовательскому интерфейсу. Если вы хотите показать или скрыть элемент пользовательского интерфейса, если вы хотите получить текст текстового поля или включить или отключить элемент (или сто других вещей), вам необходимо определить выход этого объекта в источниках и связать его с выходом через «объект интерфейса» к элементу пользовательского интерфейса. После этого вы можете использовать выход так же, как и любую другую переменную в вашей кодировке.

IBAction – специальный метод, инициируемый объектами пользовательского интерфейса. Interface Builder распознает их.

 @interface Controller { IBOutlet id textField; // links to TextField UI object } - (IBAction)doAction:(id)sender; // eg called when button pushed 

За дополнительной информацией обращайтесь к Apple Docs

Выйдя на диаграмму, глядя на кодирование с ключом, подумал, что это может помочь кому-то. Это помогает понять, что такое IBOutlet.

Посмотрев на stream, можно увидеть, что IBOutlets только там, чтобы соответствовать имени свойства с управляющим именем в файле Nib.

Как загружается файл nib, снимок экрана онлайн-книги Мэтта для iOS6

когда вы используете Interface Builder, вы можете использовать Connections Inspector для настройки событий с обработчиками событий, обработчики событий должны быть функциями, которые имеют модификатор IBAction. Вид может быть связан с ссылкой для того же типа и с модификатором IBOutlet.

  • Можно ли использовать «classic» malloc () / free () в приложениях Objective-C / iPhone?
  • objective C: Modulo bias
  • Под автоматическим подсчетом ссылок, почему сохранить, освободить и dealloc не разрешено?
  • Объявление переменных внутри оператора switch
  • Сортировка двух NSArrays вместе бок о бок
  • Преобразовать десятичную дробную часть в Objective-C?
  • Категории Objective-C в статической библиотеке
  • Список синтаксиса объявлений блока
  • Поддерживает ли ARC очереди отправки?
  • @ «Какой-то текст» дает автореализацию или сохранение 1 объекта назад?
  • Почему блоки nil / NULL вызывают ошибки шины при запуске?
  • Interesting Posts

    Изменить цвет команд в консоли2

    OpenShift: как подключиться к postgresql с моего ПК

    Как получить длину блока памяти после malloc?

    Переустановите структуру Ruby на OS X Yosemite

    Запускать программы, путь которых содержит пробелы

    Пакетное обновление / удаление EF5

    Как обнаружить паузу во вводе для UISearchBar / UITextField?

    Минимизация всех открытых окон в C #

    Android точно сигнализирует всегда 3 минуты

    Ошибка Gmail. Для SMTP-сервера требуется защищенное соединение или клиент не прошел аутентификацию. Ответ сервера: 5.5.1 Требуется аутентификация

    Как мы определяем ориентацию приложения в iOS 8?

    Как отключить функцию Windows 7, которая максимизирует окно на весь экран при перемещении к краю экрана (но не работает ли быстрые клавиши)?

    Как получить IP-адрес LAN для переменной в пакетном файле Windows

    Зачем использовать RAMdisk сегодня?

    Я хочу запустить файл сценария Selenium из командной строки

    Давайте будем гением компьютера.