Что в действительности означает nibNameOrNil? - PullRequest
6 голосов
/ 21 февраля 2012

Сигнатура метода init по умолчанию на сгенерированных XCode контроллерах вида:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ }

Я видел, что они инициализированы с обоими предоставленными значениями, только именем пера (с комплектом как ноль), илипросто nil как оба.Все, кажется, работает.

Как UIViewController действительно обрабатывает self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];?Есть ли недостаток в том, чтобы просто ввести nil для обоих значений?

Ответы [ 2 ]

9 голосов
/ 21 февраля 2012

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

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

- (void)loadView
{
    UIView *theView = [[UIView alloc] ...
    // Setup the main view
    self.view = theView;
}
1 голос
/ 21 февраля 2012

Из документов :

nibName:

Если вы укажете nil для параметра nibName и не переопределите метод loadView, контроллер представления ищет файл nib с помощью других средств. Смотри nibName.

nibBundle:

Пакет для поиска файла пера. Этот метод сначала ищет файл пера в языковых каталогах проекта пакета, а затем в каталоге ресурсов. Если ноль, этот метод ищет файл пера в основном комплекте.

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