Значение макроса IBOutlet и привязок

Когда я использую привязки, мне не нужно включать макрос IBOutlet. Бывший.

@свойство NSString* stringToBind

Почему это?

Когда мы используем макрос IBOutlet, а когда оставляем его? Я сбит с толку, потому что думал, что мы включаем макрос IBOutlet, когда хотим использовать его как объект с построителем интерфейса.

Что произойдет, если связать с объектом (как это обычно делается с выходом), но исключить макрос IBOutlet? То есть создали розетку без макроса IBOutlet? Это необязательно во всех случаях? Это просто используется, чтобы упростить вещи, чтобы они были обнаружены?

заранее спасибо


person rubixibuc    schedule 13.11.2011    source источник


Ответы (1)


Что касается компилятора и ссылки, IBOutlet не работает. Точнее, это #define'd ни к чему. Xcode и Interface Builder используют статический анализ кода, чтобы выяснить, что делать, но это не повлияет на компиляцию или компоновку.

Сгенерированный NIB содержит имена свойств для подключения при его загрузке, и эти имена разрешаются так же, как разрешаются все остальные свойства.

Если вы удалите IBOutlet из объявления свойства, возникает риск того, что при следующем создании NIB соединение по ссылке не будет установлено. Я не уверен, как с этим справляется Interface Builder.

person IronMensan    schedule 13.11.2011
comment
+1 большое спасибо. Я новичок в ObjC, и у меня было много проблем с пониманием того, что такое IBOutlet (что это, свойство с типами?), Пока я не подумал, не был ли это макрос - ваш ответ прояснил. @rubixibuc, будьте добры, отметьте это как принятый ответ :D - person m_x; 11.06.2014