iPhone 应用程序生命周期

标签 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 生成代码以在 dealloc 中释放 windownavigationController

我看不到任何分配和初始化windownavigationController的代码。我想知道这种情况发生在哪里。

阿里。

最佳答案

在 XIB 文件内部,有一些代码用于实例化存储在其中的对象。

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

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

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

关于iPhone 应用程序生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2441105/

相关文章:

ios - 两个不同单元格的 didSelectRowAtIndex - watchKit

iphone - 如何获得模式为 AspectFit 的 UIImageView 的比例因子?

iphone - UIScrollView 每次访问 View 都会更改滚动位置

iphone - 通过 UIButton 将文本从 UITextView 复制到剪贴板(粘贴板)?

ios - 如何结合滑动菜单和uitabbarcontroller?

objective-c - 如何在 iOS/OS X 中将 HTML 转换为 Markdown?有什么方法可以在应用程序中使用 pandoc 吗?

objective-c - 核心数据: entity properties getting mixed

objective-c - PFUser 在 fetchAllIfNeeded 之后调用 objectForKey 时抛出 NSInternalInconsistencyException

ios - 无法将两个 AlertController 放在同一个 VC 上

iphone - 将新字典添加到我的 plist 文件中