iOS app life cycle 生命周期图
第一步: Main
有C相关语言开发经验的朋友都知道,所有程序运行都是从 main 程序开始的。
#import <UIKit/UIKit.h>#import "NoteNavAppDelegate.h"
int main(int argc, char *argv[]){@autoreleasepool {return UIApplicationMain(argc, argv, nil, NSStringFromClass([NoteNavAppDelegate class]));
}}
第二步:UIApplicationMain
UIApplicationMain 到底为我们做了什么事情?
2.1、创建了UIApplication的实例。
每一个应用程序都有一个UIApplication或其子类型的实例。当程序被加载,函数方法UIApplicationMain就被调用执行,它创建了单件模式的UIApplication对象。
2.2、在 Info.plist 文件中寻找初始化需要的一些元素,这个文档包含了程序需要初始化的一些元素比如:icon、名称、指定主界面的nib文件等等。
其中的 NSMainNibFile => MainWindow 指向主界面。
第三步:主界面
主界面nib页面又给我们指定了什么东西呢?
3.1、File’s Owner 表示当前nib文件的使用者可以看到是UIApplication
3.2、First Responder 可以用于处理很多事件.句柄
3.3、还指定了 application’s delegate
3.4、A window 用于显示程序加载背景. UIWindow class提供了一个container for views的管理和显示。
下面是一个具有导航的Main Nib 文件的引用关系。
第四步:UIApplication加载结束后
接下来处理的关键在于3.3所指定的delegate
当UIApplication加载结束后,会给它所指定的delegate发一个application:didFinishLaunchingWithOptions: 事件消息.
然后在这个方法里面创建自己的view controlle以及给主window指定subview.
接下来的事情就是由程序员自己编程控制了。
从MVC的角度看 iOS 的那些类
iOS的消息流转流程
参考资料:
IPHONE基于窗口应用程序的生死
http://guogoul.com/2010/10/29/iphone-window-based-applicatio/
iOS: some notes
http://blog.csdn.net/totogogo/article/details/7353812
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2010-05-25 .NET Framework 4.0 SDK的安装