Любопытство заметил при изучении Objective-C и Xcode в целом - PullRequest
0 голосов
/ 24 августа 2011

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

Однако, существует ли сценарий, в котором мне не потребуется ключевое слово IBOutlet, предшествующее моему представлению Тип объекта?Например: можем ли мы иметь сценарий, в котором:

UIButton *display ;

имеет какое-то применение против

IBOutlet UIButton *display ;

Этот вопрос возник из любопытства.

Еще один вопрос, который у меня есть, вероятно, связан с пониманием нюансов интерфейсов и языка C.файлы, а не файлы реализации.Я не согласен с этой концепцией, и опять это просто любопытство?

Ответы [ 3 ]

2 голосов
/ 24 августа 2011

Для компилятора IBOUTLET является нулевым оператором. Это ничего не значит. Единственная цель - сообщить Интерфейсному Разработчику, что вы собираетесь подключить его к объекту интерфейса.

Заголовочные файлы определяют интерфейс, и это все, что нужно для других реализаций классов.

Джо

2 голосов
/ 24 августа 2011

Ключевое слово "IBOutlet" ничего не меняет в вашей программе, оно просто позволяет Интерфейсному Разработчику распознавать, какие соединения доступны. Если вам не нужно подключать что-либо в вашем интерфейсе (например, если вы просто хотите использовать переменную экземпляра для частного хранилища или если вы хотите использовать @property), вам не нужно использовать IBOutlet .

Мы импортируем заголовочные файлы только для того, чтобы компилятор знал, какие классы и методы доступны при их использовании из других мест в программе. Файл реализации не нужно импортировать; его нужно только скомпилировать в программу, и все, что оно содержит, будет доступно.

0 голосов
/ 24 августа 2011

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

Я полагаю, вам больше не нужны эти ключевые слова в Xcode 4.0 +.

У вас может быть сценарий, в котором вам не нужен IBOutlet или IBAction, когда вы создаете элементы управления UI программно (в коде).

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