• 0.加载+load方法
  • 1.执行Main函数
  • 2.执行UIApplicationMain函数.
  • 3.创建UIApplication对象,并设置UIApplicationMain对象的代理.UIApplication的第三个参数就是UIApplication的名称,如果指定为nil,它会默认为UIApplication。UIApplication的第四个参数为UIApplication的代理.
  • 4.开启一个主运行循环.保证应用程序不退出.
  • 5.加载info.plist.加载配置文件.判断一下info.plist文件当中有没有Main storyboard file base name里面有没有指定storyboard文件,如果有就去加载info.plist文件,如果没有,那么应用程序加载完毕.
  • 6.通知应用程序,调用代理方法
扩展:
  • +load :

    • runtime负责按继承顺序递归调用,我们不需要调用super
    • 在自己Class的+load方法时可以替换系统framework中的某个类的方法实现,因为在动态链接过程中,所有依赖库的类是先于自己的类加载的
    • 重载+load时不需要手动添加自动释放池,因为在runtime调用+load方法前后加了 objc_autoreleasePoolPush() 和objc_autoreleasePoolPop() 的。
 
  • main 函数:程序启动的入口点,它的主要工作是控制UIKit framework。
 
  • UIApplicationMain 函数:
     return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])) 
     其原型是:
     UIKIT_EXTERN int UIApplicationMain(int argc, char *argv[], NSString * __nullable      principalClassName, NSString * __nullable delegateClassName);
    • argh:系统或者用户传入的参数个数
    • argv:系统或者用户传入的实际参数
    • principalClassName:这个参数标识了应用程序的类的名称(该类必须继承自UIApplication类)。这是负责运行应用程序的类。建议为这个参数传nil。
    • delegateClassName:是应用程序类的代理类。应用程序的代理负责管理系统和你的代码之间的高层次的互动。 Xcode的项目模板会自动将该参数设置为一个适当的值。
 
 
 
 

最新文章

  1. Java 经典入门(一)
  2. Mysql中eft join、right join、inner join的区别
  3. window.location.href无法跳转的解决办法
  4. tomcat 内存溢出
  5. HTML+css实现图片全屏
  6. MyEclipse — Maven+Spring+Struts+Hibernate 整合 [学习笔记-4]
  7. class str
  8. <转>LeetCode 题目总结/分类
  9. QVariant与自定义数据类型转换的方法
  10. Modify the average program to promote for intergers repeatedly.stop when a nagetive number is entere
  11. Delphi 类成员的默认访问权限(用RTTI检测)
  12. IOC原理分析
  13. 使用docker-compose 大杀器来部署服务 上(转)
  14. 转 the best for wcf client
  15. windows下搭建vue开发环境+IIS部署
  16. javascript小实例,在页面中输出当前客户端时间
  17. 轻松掌握Redux-Action使用方法
  18. Django的RestfulAPI框架RestFramework
  19. 如何学习JavaEE,项目又该如何做?
  20. 词项邻近 & 停用词 & 词干还原

热门文章

  1. android学习笔记23——菜单
  2. Android流量统计TrafficStats类
  3. javascript世界一等公民—函数
  4. BestCoder Round #85 hdu5778 abs(素数筛+暴力)
  5. Win7+VMware Workstation环境下的CentOS-Linux网络连接设置
  6. 基本 linux命令
  7. 树莓派,使用opencv调用自带的摄像头
  8. Java多线程之新类库中的构件PriorityBlockingQueue
  9. 反人类的MyEclipse之-MyEclipse设置Console字体大小
  10. SelectedValue 失效