#import <UIKit/UIKit.h> //代理主类 //父类:UIResponder //UIResponder主要用来处理事件 //UIApplicationDelegate代理协议 //须要本身实现协议 //UIApplication框架类来调用咱们的协议 @interface AppDelegate : UIResponder <UIApplicationDelegate> //窗口对象, //表示当前设备的屏幕,能够在此窗口对象上添加视图 //strong用在自动内存管理中关键子 //对内存引用计数器+1,retainCount+1 //至关于手动内存管理中的retain //与strong对应的关键子weak,修饰对象类型的 //weak引用不会对内存计数器+1,至关与assign @property (strong, nonatomic) UIWindow *window; @end #import "AppDelegate.h" @implementation AppDelegate //入口函数也是协议函数 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; return YES; } //下面的函数都是协议函数 //程序即将从前台(活动状态)退出到后台(非活动状态,休眠状态) - (void)applicationWillResignActive:(UIApplication *)application { NSLog(@"即将退出 前台!"); // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. } //程序已经进入后台状态(休眠状态) //释放一些程序中的图像资源和内存 - (void)applicationDidEnterBackground:(UIApplication *)application { NSLog(@"程序已经进入后台!"); // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. } //程序即将从后台进入前台的时调用此函数 - (void)applicationWillEnterForeground:(UIApplication *)application { NSLog(@"即将进入前台!"); // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. } //程序已经变为激活状态,前台运行 - (void)applicationDidBecomeActive:(UIApplication *)application { NSLog(@"已经进入前台状态!"); // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } //程序即将被退出时,程序结束前被调用 //保持数据,释放内存等收尾工做 - (void)applicationWillTerminate:(UIApplication *)application { NSLog(@"程序即将结束XXXX!"); // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } @end