objective C,iOS:不在子视图上调用alloc或init

时间:2011-06-20 19:58:00

标签: objective-c ios view initialization memory-management

我目前正在运行以下代码作为简单测试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;
}

1 个答案:

答案 0 :(得分:2)

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