Что означает [NSBundle mainBundle] в iPhone?

RootViewController *rvController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle mainBundle]];

иногда я вижу, что он использует nil, я не знаю, для чего именно он используется?


person RAGOpoR    schedule 03.08.2010    source источник


Ответы (2)


Вот точное объяснение этому:

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

Я думаю, что [NSBundle mainBundle] ничем не отличается от того, что вы поставили nil. Однако, если вы хотите сделать интернационализацию и локализацию, вы можете использовать их.

Подробнее здесь

person vodkhang    schedule 03.08.2010

http://developer.apple.com/mac/library/documentation/cocoa/reference/foundation/Classes/NSBundle_Class/Reference/Reference.html#//apple_ref/doc/uid/20000214-BCIDFECI< /а>

Этот метод выделяет и инициализирует объект пакета, если он еще не существует. Новый объект соответствует каталогу, в котором находится исполняемый файл приложения. Обязательно проверьте возвращаемое значение, чтобы убедиться, что у вас правильный пакет. Этот метод может возвращать допустимый объект пакета даже для несвязанных приложений.

Как правило, основной пакет соответствует пакету файла приложения или оболочке приложения: каталогу, который носит имя приложения и помечен расширением «.app».

Согласно документам, initWithNibName:bundle: просто вызывает это, когда вы передаете nil.

http://developer.apple.com/iphone/library/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006926-CH3-SW15

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

Значит, они эквивалентны

person Lou Franco    schedule 03.08.2010