iPhone应用程序生命周期

时间:2010-03-14 03:45:03

标签: iphone objective-c ios interface-builder

InterfaceBuilder在fooAppDelegate.m中为我生成了这个方法:

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after app launch    

    [window addSubview:[navigationController view]];
    [window makeKeyAndVisible];
}

IB还将UIWindow *window;放在fooAppDelegate.h中,将@synthesize window;放在fooAppDelegate.m中,相应地放在navigationController中。 IB生成代码以在window中发布navigationControllerdealloc

我看不到任何分配和初始化windownavigationController的代码。我想知道发生了什么。

阿里。

1 个答案:

答案 0 :(得分:6)

在XIB文件中,有一些代码可以实例化存储在其中的对象。

这就是UIWindow实例是IBOutlet的原因。 任何IBOutlet的内容通常都是从XIB文件中实例化的。

Interface Builder不是代码生成器,它是一个实时对象工厂。

“Interface Builder将应用程序的接口保存为包含应用程序中使用的接口对象和关系的包。这些对象被归档(在其他上下文中称为序列化或编组的过程)到XML文件中或者扩展名为.nib的NeXT样式的属性列表文件。在运行应用程序时,正确的NIB对象被取消归档,连接到他们自己的应用程序的二进制文件中,并被唤醒“