appDelegate中的委托协议方法以及使用观察者模式获取其触发方法



//当应用程序将要进入非活动状态执行,在此期间,应用程序不接受消息或事件,比如来电
- (void)applicationWillResignActive:(UIApplication *)application
{
    NSLog(@"应用程序将要进入非活动状态,即将进入后台");
}  

//应用程序已经进入后台运行
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    NSLog(@"如果应用程序支持后台运行,则应用程序已经进入后台运行");
如果需要退出后台,则在这里加上:exit(0);
}  

//应用程序将要进入活动状态执行
- (void)applicationWillEnterForeground:(UIApplication *)application
{
    NSLog(@"应用程序将要进入活动状态,即将进入前台运行");
}  

//应用程序已经进入活动状态
- (void)applicationDidBecomeActive:(UIApplication *)application
{
    NSLog(@"应用程序已进入前台,处于活动状态");
}  

//应用程序将要退出,通常用于保存书架喝一些推出前的清理工作,
- (void)applicationWillTerminate:(UIApplication *)application
{
    NSLog(@"应用程序将要退出,通常用于保存书架喝一些推出前的清理工作");
}  

//当设备为应用程序分配了太多的内存,操作系统会终止应用程序的运行,在终止前会执行这个方法
//通常可以在这里进行内存清理工作,防止程序被终止
-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
    NSLog(@"系统内存不足,需要进行清理工作");
}  

//当系统时间发生改变时执行
-(void)applicationSignificantTimeChange:(UIApplication *)application
{
    NSLog(@"当系统时间发生改变时执行");
}  

//当程序载入后执行
-(void)applicationDidFinishLaunching:(UIApplication *)application
{
    NSLog(@"当程序载入后执行");
}  

介绍完appdelegate中的方法后,回到我想说的地方

如果在一个viewcontroller中触发了这些方法(比如按home键盘,此程序会进入后台,触发

applicationWillResignActive、
applicationDidEnterBackground

方法),这时候我们不可能在回到appdelegate中写逻辑处理,所以,我们可以用观察者模式来处理这个问题:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    [[NSNotificationCenter defaultCenter]addObserver:self
                                            selector:@selector(AA)
                                                name:UIApplicationDidFinishLaunchingNotification
                                              object:nil];
}

这里接受到的name可以有很多:

UIApplicationDidFinishLaunchingNotification

UIApplicationDidEnterBackgroundNotification

....appdelegate中对应的方法都有

时间: 2024-10-01 07:12:28

appDelegate中的委托协议方法以及使用观察者模式获取其触发方法的相关文章

把Swift中的String转成NSString ,获取NSString的方法

1.0 在Swift中的 String 并没有提供什么方法,直接把它自身转变成 Int .Float 等,而在OC中我们就可以这样  "123".integerValue 来获取它对应的数值,因为OC和Swift的字符串类型是相通的,所以我们可以进行如下操作: var str1 = "123" let a = (str1 as NSString).integerValue //获取数值 let b = (str1 as NSString).length // 获取字

前台向后台传值的两种方法 以及 从后台获取数据的方法

1.前台向后台传值方法一: 表单提交的方式: 1 <form action="${path }/manage/logon.do" method="post" id="logonForm"> 2 <table cellpadding="0" cellspacing="0" border="0"> 3 <tr height="50">

HTTP协议中POST、GET、HEAD、PUT等请求方法

HTTP协议中POST.GET.HEAD.PUT等请求方法 Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作.到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息. 还有OPTIONS(options),GET,HEA

Objective-C中的委托(代理)模式

我个人更喜欢把委托(Delegate)模式称为代理(Proxy)模式.还是那句话,第一次接触代理模式是在Java中接触的,在Java中实现代理模式和接口是少不了的.当时学习Spring的时候用到了接口回调,其实就是实现的委托代理模式.简单的说代理就是把相应的功能交给实现接口的相应的类中来解决.在OC中没有接口该如何实现代理呢?前面的博客中笔者说提了一句,在OC中的协议和Java中的接口极为相似,都是只声明方法而不去实现,方法的实现在OC中交个遵循协议的类,而在Java中方法的实现交给实现接口的类

[程序示例]Objective-C中的委托设计模式(牛仔与姑娘)

今天整理电脑翻到以前自学Objective-C时写的一个练习委托设计模式的一个小程序,就po上来和大家分享,顺便自己也复习一下OC中的委托. Objective-C中的委托设计模式是和协议分不开的. 协议呢,就是使用了这个协议后就要按照这个协议来办事,协议要求实现的方法就一定要实现.(在Objective-C2.0中可以在协议里选择是否必须实现某种方法,用关键字@optional和@required) 委托的话,顾名思义就是自己处理不了的事情,委托他人按照协议里写好的条款来办理这件事. 具体实现

聊聊 iOS 开发中的协议

前言 何为协议,简单来说在OC中我们使用关键字@protocol可以声明一个协议,并在协议中添加多个属性.方法供于遵循者实现,从某个角度上来说,这是一种不同于category机制的category.在日常开发中,协议可谓无处不在,最为核心的UITableView通过协议来获取数据.完成事件处理等.下面就是一个最粗浅的协议 @protocol CustomProtocol - (void)doSomething; @end 对于协议的理解,很多的开发者依旧保留在委托-代理等于协议等认知上.然而前者

C#中的委托(Delegate)和事件(Event)

C#中的委托(Delegate)和事件(Event) 2007-11-30 11:40:00 分类: 把C#中的委托(Delegate)和事件(Event)放到现在讲是有目的的:给下次写的设计模式——观察者(Observer)有一个参考. 委托和事件应该是C#相较于C++等之前的非托管的语言提出的一个新的术语(term).“旧瓶装新酒”这样的描述似乎有些“贬义”,但确实是这样.委托也好,事件也好最初的起源是C/C++中的函数指针,关于函数指针的简单介绍可以参见我以前的一篇<C/C++中指向函数的

再看C#中的委托和事件

在一口一个设计模式--观察者模式中,我们已经知道如何应用观察者模式,但通过最近的深入学习,发现观察者模式存在以下缺陷: 1.抽象通知者依赖于抽象观察者: 2.每个具体观察者被调用的方法必须一致. 比如在机房收费系统中关于观察者模式的应用如下图所示: 这个设计存在以下问题: 1.抽象通知者需要把抽象观察者中的所有具体对象添加到集合中,以备向每个具体观察者发送通知消息: 2.在发送通知消息时,具体观察者中被通知的方法必须一致,否则具体通知者无法完成遍历: 3.更新卡内余额.更新学生上机状态和保存学生

Info.plist和pch文件的作用,UIApplication,iOS程序的启动过程,AppDelegate 方法解释,UIWindow,生命周期方法

转自:http://blog.csdn.net/dwt1220/article/details/29373817 Info.plist常见的设置 建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除  注:在旧版本Xcode创建的工程中,这个配置文件的名字就叫“Info.plist”  项目中其他Plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“Info.plis