#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.
Это позволяет вам получить программный доступ к элементу управления и, в этом случае, изменить / извлечь его текст, например.