2010-09-21 2 views
2

Файлы Nib автоматически инициализируют определенные свойства? В большинстве Objective-C код, который я видел, вы инициализировать указатель с:Что такое Objective C Nib Files?

MyObject* obj = [MyObject alloc]; 
[MyObject doStuff]; 
[obj release]; 

Однако, с некоторыми объектами (например, ViewController подклассы) объекты UIView используются без инициализации, и не когда-либо выпущенных. UIKit автоматически ищет файл .xib и управляет всеми экземплярами ViewController для вас?

Если это так, то это очень запутанно. Как все это работает? Как вы можете объявить указатель в файле заголовка, а затем волшебным образом найти его выделенным, когда вам это нужно?

Любая помощь?

(Просто с ++ парень жалуется на Objective-C)

+0

Я только начинаю собирать объектив-c, но в вашем примере вам не нужно явно вызывать '[[MyObject alloc] init];' для его запуска ? – Robert

+0

Я изучаю цель-c уже около двух дней - init как конструктор прав? кроме того, что вы должны вручную вызвать [super init]? – user434565

+0

Вы действительно должны называть 'init'. – Wevah

ответ

7

NIBS являются 'замороженных' объектов, плюс графа объектов. Объекты создаются при загрузке NIB. Все ссылки между объектами восстанавливаются. Также устанавливаются указатели в «Владелец файлов», IBOutlets, поэтому владелец NIB имеет ссылки на только что загруженные объекты.

Редактировать: ваш Info.plist также может ссылаться на «основной» NIB, который будет загружен во время запуска приложения. Это часто содержит основные контроллеры просмотра & просмотров.

0

Если вы создаете viewController, и есть файл nib с тем же именем, он будет управлять . Существует также возможность вызвать суперконтрактор с другим именем ниба. В любом случае он выделяется и управляется viewController

Смежные вопросы