RunLoop:运行循环(死循环)
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,通常用不到)