1.application启动的路径
1 Supporting Files --->main.m 2 int main(int argc, char * argv[]) 3 { 4 @autoreleasepool { 5 /* 6 argc: 系统或者用户传入的参数个数 7 argv: 系统或者用户传入的实际参数 8 9 */ 10 // return UIApplicationMain(argc, argv, nil, NSStringFromClass([NJAppDelegate class])); 11 12 // return UIApplicationMain(argc, argv, @"UIApplication", NSStringFromClass([NJAppDelegate class])); 13 14 /* 15 1.根据传入的第三个参数创建UIApplication对象 16 2.根据传入的第四个产生创建UIApplication对象的代理 17 3.设置刚刚创建出来的代理对象为UIApplication的代理 18 4.开启一个事件循环 19 */ 20 return UIApplicationMain(argc, argv, @"UIApplication", @"NJAppDelegate"); 21 } 22 }
2.application生命周期
1 // 当应用程序启动完毕的时候就会调用(系统自动调用) 2 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 3 { 4 // Override point for customization after application launch. 5 NSLog(@"didFinishLaunchingWithOptions"); 6 return YES; 7 } 8 // 即将失去活动状态的时候调用(失去焦点, 不可交互) 9 - (void)applicationWillResignActive:(UIApplication *)application 10 { 11 NSLog(@"ResignActive"); 12 } 13 14 // 重新获取焦点(能够和用户交互) 15 - (void)applicationDidBecomeActive:(UIApplication *)application 16 { 17 18 NSLog(@"BecomeActive"); 19 } 20 21 // 应用程序进入后台的时候调用 22 // 一般在该方法中保存应用程序的数据, 以及状态 23 - (void)applicationDidEnterBackground:(UIApplication *)application 24 { 25 26 NSLog(@"Background"); 27 } 28 29 // 应用程序即将进入前台的时候调用 30 // 一般在该方法中恢复应用程序的数据,以及状态 31 - (void)applicationWillEnterForeground:(UIApplication *)application 32 { 33 34 NSLog(@"Foreground"); 35 } 36 37 // 应用程序即将被销毁的时候会调用该方法 38 // 注意:如果应用程序处于挂起状态的时候无法调用该方法 39 - (void)applicationWillTerminate:(UIApplication *)application 40 { 41 42 } 43 44 // 应用程序接收到内存警告的时候就会调用 45 // 一般在该方法中释放掉不需要的内存 46 - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application 47 { 48 NSLog(@"MemoryWarning"); 49 } 50 @end
Supporting Files--->UIApplication-Prefix.pch文件
//表示所有的.m文件都自动引用 #ifdef __OBJC__ #import <UIKit/UIKit.h> #import <Foundation/Foundation.h> #endif
程序启动的完整过程
1 1.main函数 2 3 2.UIApplicationMain 4 * 创建UIApplication对象 5 * 创建UIApplication的delegate对象 6 7 3.delegate对象开始处理(监听)系统事件(没有storyboard) 8 * 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法 9 * 在application:didFinishLaunchingWithOptions:中创建UIWindow 10 * 创建和设置UIWindow的rootViewController 11 * 显示窗口 12 13 3.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard) 14 * 创建UIWindow 15 * 创建和设置UIWindow的rootViewController 16 * 显示窗口
时间: 2024-10-11 04:45:44