IOS开发概述-07.IOS程序启动原理

1.应用程序启动概述

  • IOS程序的入口是main函数
int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }

2.启动原理

  • 在main函数中执行UIApplicationMain函数,内部原理如下:
  • 执行UIApplicationMain函数
    • 1.根据第三个参数创建UIApplication对象
    • 2.根据第四个参数创建UIApplication对象的代理对象,并赋值给UIApplication对象的代理
    • 3.开启主事件循环,接受处理事件,并让程序一直运行
    • 4.加载info.plist文件,判断有没有指定main.storyboard,如果指定就去加载
  • UIApplicationMain函数底层解析
    • 第一二个参数:是系统传入的参数,暂时可以忽略
    • 第三个参数:principalClassName指定应用程序类名(app的象征),该类必须是UIApplication(或子类),若为nil,则默认传入UIApplication类名
    • 第四个参数:delegateClassName指定应用程序类的代理或代理的子类的类名,该类必须遵守UIApplicationDelegate协议
  • 反射机制
    • 输入类名有提示,避免输入错误
    • NSStringFromClass:根据一个类名生成一个类名字符串
    • NSClassFromString: 根据一个类名字符串生成一个类名

3.程序启动原理图

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值