iPhone应用程序生命周期

ite*_*ter 2 iphone objective-c interface-builder ios

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

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

    // Override point for customization after app launch    

    [window addSubview:[navigationController view]];
    [window makeKeyAndVisible];
}
Run Code Online (Sandbox Code Playgroud)

IB也放入UIWindow *window;fooAppDelegate.h和@synthesize window;fooAppDelegate.m,并相应地为navigationController.IB生成代码来释放windownavigationControllerdealloc.

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

阿里.

Jac*_*kin 6

在XIB文件内部,有代码实例化存储在其中的对象.

这就是为什么UIWindow实例是一个IBOutlet.IBOutlet通常是从XIB文件中实例化的任何内容.

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

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