iOS AppDelegate浅析

     当我们创建一个iOS项目,默认会有main.m类,这是一个程序的主入口。main.m方法体如下:

#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char * argv[]) {
  @autoreleasepool {
      return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
  }
}

在上述方法体中,UIApplicationMain()方法根据我们提供的AppDelegate类名来创建UIApplication的一个实例,且将这个AppDelegate作为UIApplication的委托,一般我们可以通过类方法[UIApplication shareApplication]来获取对UIApplication的一个引用。

      在UIApplication接收到系统事件和生命周期事件时,会把相应的事件消息传递给UIApplicationDelegate进行处理,下面的声明周期函数都是可选的,一般都可以实现他们:

(1)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
程序启动后执行的回调。


(2)

- (void)applicationWillResignActive:(UIApplication *)application

应用程序将要由活动状态切换到非活动状态时执行的委托调用,如按下home 按钮,返回主屏幕,或全屏之间切换应用程序等。 


(3)

- (void)applicationDidEnterBackground:(UIApplication *)application
//在应用程序已进入后台程序时,要执行的委托调用。所以要设置后台继续运行,则在这个函数里面设置即可


(4)

- (void)applicationWillEnterForeground:(UIApplication *)application

//在应用程序将要进入前台时(被激活),要执行的委托调用,与applicationWillResignActive 方法相对应。


(5)

- (void)applicationDidBecomeActive:(UIApplication *)application 

//在应用程序已被激活后,要执行的委托调用,刚好与  applicationDidEnterBackground 方法相对应。


(6)

- (void)applicationWillTerminate:(UIApplication *)application

//在应用程序要完全退出的时候,要执行的委托调用。


(7)

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application

iPhone设备只有有限的内存,如果为应用程序分配了太多内存操作系统会终止应用程序的运行,在终止前会执行这个方法,通常可以在这里进行内存清理工作防止程序被终止。


(8)

- (void)applicationSignificantTimeChange:(UIApplication *)application

当系统时间发生改变时执行。


(9)

-(void)application:(UIApplication *)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame

当StatusBar状态栏大小发生改变时执行。


(10)

-(void)application:(UIApplication *)application willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientation duration:(NSTimeInterval)duration

当Statusbar状态栏方向发生改变时执行。


(11)

- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url

当通过url时执行;


(12)

- (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame

当Statusbar大小发生改变时执行;


(13)

-(void)application:(UIApplication *)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation

当Statusbar方向发生改变后执行。


......

     所以现在我们可以知道,AppDelegate就是整个项目的一个监听器,让我们实时了解当前程序的运行情况。


github主页:https://github.com/chenyufeng1991  。欢迎大家访问!













  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值