一、ios程序执行顺序:
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
main.m 是程序的入口
首先,在main程序中:调用了一个UIApplicationMain()函数,创建应用程序对象。
1. 创建了一个UIApplication对象。
2. 制定了一个UIApplication的代理委托
应用程序的委托:监控程序的启动和进入后台,还有从后台进入前台
那代理委托是谁呢 ?
就是AppDelegate 程序创建的时候,我们程序里有一个类就是AppDelegate 类
3. 开启一个时间循环。(一直监听你屏幕上的事件的发生)
4. NSLog(@”%s,%d”, __FUNCTION__, __LINE__);打印这个函数名,和这个方法在第多少行上。
二、程序运行时候 方法的执行顺序是:
1.application: didFinishLunchingWithOptions
2.applicationDidBecomeActive(应用程序变为活动状态)
当按下Home键之后:(程序将要取消活动状态)
1.applicationWillResignActive
2.applicationDidEnterBackground
当在后台的程序,点击进入前台的时候触发方法:
1. applicationWillEnterForeground
2. applicationDidBecomeActive
applicationWillTerminate(程序退出调用方法)
三、ViewController 这个类是视图控制器
从alloc和init创建初始化开始
在这个类里,先调用loadView方法,然后调用viewDidLoad方法,如果没有重写loadView直接调用父类的loadView(如果里面什么也不写)就陷入了死循环。
视图将要出现的方法:viewWillAppear
视图已经出现的方法: viewDidAppear
视图将要消失: viewWillDisappear
视图已经消失: viewDidDisappear
视图销毁:dealloc
视图控制器是一个幕后的双手,控制视图的展示,特别是多个视图控制器实现跳转的时候,用到视图控制器的viewWillAppear 等一些方法。