Как объекты определяются в файле XIB и как они создаются во время выполнения? - PullRequest
3 голосов
/ 21 сентября 2009

Я только что приобрел Mac и начинаю изучать разработку программного обеспечения с использованием Cocoa и Objective-C с использованием XCode в Snow Leaped, сделанного сильным Microsoft и C # backgrund

Вся документация и учебные пособия, которые я прочитал, используют Interface Builder и XCode для создания приложений с пользовательскими интерфейсами. Насколько я понимаю, объекты, созданные Interface Builder, каким-то образом определены в файле .xib и созданы во время выполнения.

Пакет содержит код и ресурсы, которые его сопровождают. Правильно ли говорить, что файл .xib на самом деле является пакетом, который содержит ресурсы пользовательского интерфейса, и что этот пакет загружается (это правильный глагол?) Во время выполнения и создаются экземпляры объекта?

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

Есть ли что-то, что я должен прочитать, чтобы понять очевидный сдвиг парадигмы между C # / WinForms и Objective-C / Mac OS / Cocoa?

Ответы [ 2 ]

2 голосов
/ 21 сентября 2009

Правильно ли говорить, что файл .xib на самом деле является пакетом, который содержит ресурсы пользовательского интерфейса, и что этот пакет загружается (это правильный глагол?) Во время выполнения и создаются экземпляры объекта?

Нет. Пакет является одной из нескольких определенных структур каталогов , а файл xib - это обычный файл, а не каталог.

Файл xib содержит описания объектов. Когда вы компилируете перо (обычно как часть построения приложения), компилятор перьев читает в xib, создает объекты, как описано в нем, и архивирует их в перо, которое также не является пакетом.

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

Не беспокойтесь о деталях реализации. Перья просто работают. Все, что вам нужно сделать, это:

  1. Создание файлов XIB. Если вы используете контроль версий, это то, что вы говорите, чтобы отслеживать.
  2. Убедитесь, что они находятся в папках .lproj (чтобы локализаторы могли создавать их локализованные версии).
  3. Пусть Xcode справится с остальными.
2 голосов
/ 21 сентября 2009

Ключевым моментом для понимания является то, что в обычном смысле не существует никакого кода ... по крайней мере, ресурсы пользовательского интерфейса nib / xib - это не просто конструкты кода Objective-C, которые просто генерируются Inteface Builder. Это объекты, которые как бы «замораживаются» в перьях и «размораживаются» при необходимости приложениями (или пробуждаются, я полагаю, как предположил бы awakeFromNib). Они заархивированы в форме xml / plist / etc, а не являются основой для генерации исходного кода target-c.

Считайте их объектами, которые были сериализованы как XML или другие данные.

...