RootViewController *rvController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle mainBundle]];
иногда я вижу, что он использует nil, я не знаю, для чего именно он используется?
RootViewController *rvController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle mainBundle]];
иногда я вижу, что он использует nil, я не знаю, для чего именно он используется?
Вот точное объяснение этому:
Пакет, в котором нужно искать файл пера. Этот метод сначала ищет nib-файл в языковых каталогах проекта пакета, а затем в каталоге Resources. Если nil, этот метод ищет файл пера в основном комплекте.
Я думаю, что [NSBundle mainBundle] ничем не отличается от того, что вы поставили nil. Однако, если вы хотите сделать интернационализацию и локализацию, вы можете использовать их.
Этот метод выделяет и инициализирует объект пакета, если он еще не существует. Новый объект соответствует каталогу, в котором находится исполняемый файл приложения. Обязательно проверьте возвращаемое значение, чтобы убедиться, что у вас правильный пакет. Этот метод может возвращать допустимый объект пакета даже для несвязанных приложений.
Как правило, основной пакет соответствует пакету файла приложения или оболочке приложения: каталогу, который носит имя приложения и помечен расширением «.app».
Согласно документам, initWithNibName:bundle: просто вызывает это, когда вы передаете nil.
Пакет, в котором нужно искать файл пера. Этот метод сначала ищет nib-файл в языковых каталогах проекта пакета, а затем в каталоге Resources. Если nil, этот метод ищет файл пера в основном комплекте.
Значит, они эквивалентны