IBOutlet в objective-c

#objective-c #cocoa #cocoa-touch

#objective-c #cocoa #cocoa-touch

Вопрос:

что делает эта строка кода :

IBOutlet UITextField *userName;

Ответ №1:

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

IBOutlet в терминах кода нет операции. Таким образом, объявляется переменная экземпляра типа UITextField * и с именем userName , точно так же, как если бы вы ввели просто:

 UITextField *userName;
  

Что делает IBOutlet, так это помечает эту переменную-член как предназначенную для использования в качестве выхода в Interface Builder (отсюда и IB). Итак, когда Interface Builder (или Xcode 4, поскольку оба они теперь интегрированы) анализирует определение вашего класса, он знает, что нужно предоставить userName как нечто, к чему вы можете подключиться к элементу управления.

Комментарии:

1. 1 — Детали имеют значение. Это не гонка за тем, кто сможет опубликовать первым.

Ответ №2:

IBOutlet предоставляет переменные в Interface Builder.

Пример: перейдите в Interface Builder, щелкните правой кнопкой мыши класс, содержащий эту строку, и вы увидите элемент userName . В отличие от других членов этого класса, он появляется, потому что он был объявлен с помощью IBOutlet . Если вы перетащите строку из этого элемента в UITextField элемент управления, любая операция с переменной (например: доступ к ее содержимому с помощью userName.text) будет выполнена в элементе GUI.

Ответ №3:

Это часть подключения свойства userName к вашему файлу XIB.

Это позволяет вам получить программный доступ к элементу управления и, в этом случае, изменить / извлечь его текст, например.