2011-06-20 38 views
1

我目前正在运行以下代码作为简单测试iPad程序的一部分。我宣布“viewController”作为一个属性。在我见过的所有涉及子视图的其他示例中,我都被要求分配和初始化viewController,但是在这里它工作正常。有任何想法吗?目标C,iOS:不调用子视图上的alloc或init

- (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; 
} 

回答

2

这看起来像Apple提供的iOS模板的典型样板代码。在这些项目中,viewController是在MainWindow NIB中定义的。这个NIB在启动应用程序的过程中很早就加载了。 viewController是在NIB加载过程中分配的,然后调用initWithNibName:bundle:。 NIB加载过程然后将初始化的对象连接到应用程序委托的视图控制器的IBOutlet

+0

谢谢!这确实是发生了什么事情。 – Michael