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.

  • Как добавить свойства объекта во время выполнения?
  • Что такое objc_setAssociatedObject () и в каких случаях его следует использовать?
  • objective c - Обнаруживать, когда пользователь меняет настройки уведомлений приложения
  • Под автоматическим подсчетом ссылок, почему сохранить, освободить и dealloc не разрешено?
  • Чтение информации в формате MP3 с использованием объектива c
  • Как отключить ARC для одного файла в проекте?
  • Есть ли причина объявлять ivars, если вы используете свойства исключительно в Objective-C?
  • Основная HTTP-аутентификация на iPhone
  • Есть ли что-то вроде общего списка в Cocoa / Objective-C?
  • objective-C: BOOL vs bool
  • Алгоритм нечеткой даты в Objective-C
  • Давайте будем гением компьютера.