цель C, iOS: не вызывать alloc или init для подпредставления

В настоящее время я запускаю следующий код как часть простой тестовой программы для iPad. Я объявил "viewController" как свойство. Во всех других примерах, которые я видел с использованием подвидов, мне требовалось выделить и инициализировать viewController, но здесь он работает нормально. Любые идеи?

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    // Why does this work without allocating or initializing viewController?
    [self.window addSubview:viewController.view];
    [self.window makeKeyAndVisible];

    return YES;
}

person Michael    schedule 20.06.2011    source источник


Ответы (1)


Это похоже на типичный шаблонный код, который Apple поставляет с шаблонами iOS. В этих проектах viewController определен в MainWindow NIB. Этот NIB загружается очень рано в процессе запуска приложения. ViewController выделяется в процессе загрузки NIB, после чего вызывается initWithNibName:bundle:. Затем процесс загрузки NIB подключает инициализированный объект к IBOutlet контроллера представления делегата приложения.

person Mr. Berna    schedule 20.06.2011
comment
Спасибо! Это действительно то, что происходит. - person Michael; 21.06.2011