IOS的Application

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 * 显示窗口

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。