RunLoop机制

RunLoop:运行循环(死循环)

main.m

argc表示命令参数的个数,argv是可执行文件的路径。

UIApplicationMain方法的第三个参数用nil和"UIApplication"是一样的,传nil其实就相当于传了"UIApplication",注册系统App用的。第四个参数代表app的代理。

在UIApplicationMain里开启RunLoop,目的保证程序不退出和负责监听事件(触摸事件,时钟事件,网络事件),如果没有事件进入休眠状态(节约性能).

NSRunLoop五种模式(每个Mode又包含若干个Source/Timer/Observer):

1:NSDefaultRunLoopMode(默认模式:苹果建议放时钟和网络事件)

2:UITrackingRunLoopMode(UI模式:只能被触摸事件唤醒)

3:NSRunLoopCommonModes(占位模式:并不是一个真正的RunLoop模式,相当于默认模式和UI模式两种的组合)

4:UIInitializationRunLoopMode(启动模式:刚启动 App 时第进入的第一个 Mode,启动完成后就不再使用)

5:GSEventReceiveRunLoopMode(接受系统事件的内部 Mode,通常用不到)

你可能感兴趣的:(RunLoop机制)