appDelegate 使用详解

appDelegate 使用详解

1.AppDelegate.h
模板默认引入程序需要使用“类”的框架,即UIKit.h头文件,使它包含在程序中

import

此处@class声明程序中的“类”名称为
MyViewController @class MyViewController;

此处@interface声明程序界面的名称为MyAppDelegate,其中NSObject表示它的“类”符合 UIApplicationDelegate协议,接着UIApplicationDelegate,此方法为应用程序提供了关于触发的关键事件信息,例 如什么时候程序运行完成,什么时候内存不足,什么时候重要变化发生

@interface MyAppDelegate : NSObject  {  
    //定义一个程序显示窗口的对象  
    UIWindow *window;  
   //加入视图控制实际变量的对象  
    MyViewController *viewController;  
}  

此处@Property声明程序的属性,并且加入在前面@interface中指定的相同对象, 其中nonatomic是使用单线程机制减少系统资源使用,并将更改方法和修改方法生成在
Property(属性),
接着retainProperty的可选项,表明向Property
(属性)的对象发送一个retain(保留消息),
IBOutlet表示对象在Interface Builder(Storyboard)中创建。

例如下面的代码在应用程序中显示了一个窗口控件,
把这个控件连接到nib文件并显示在

Interface Builder (Storyboard) 
@property (nonatomic, retain) IBOutlet UIWindow *window;  

又例如,代码在应用程序中显示了一个视图控制控件,
把这个控件连接到nib文件并显示在


Interface Builder (Storyboard)
@property (nonatomic, retain) IBOutlet MyViewController *viewController;  

程序结束点,表明结束MyViewController.h文件
@end
2.AppDelegate.m

协议中定义的这些需要实现的方法的作用:
1、- (void)applicationWillResignActive:(UIApplication *)application
说明:当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了
2、- (void)applicationDidBecomeActive:(UIApplication *)application
说明:当应用程序入活动状态执行,这个刚好跟上面那个方法相反
3、- (void)applicationDidEnterBackground:(UIApplication *)application
说明:当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可
4、- (void)applicationWillEnterForeground:(UIApplication *)application
说明:当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反。
5、- (void)applicationWillTerminate:(UIApplication *)application
说明:当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值。
6、-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
说明:iPhone设备只有有限的内存,如果为应用程序分配了太多内存操作系统会终止应用程序的运行,在终止前会执行这个方法,通常可以在这里进行内存清理工作防止程序被终止
7、- (void)applicationSignificantTimeChange:(UIApplication*)application
说明:当系统时间发生改变时执行
8、- (void)applicationDidFinishLaunching:(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 didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation
说明:当StatusBar框方向变化完成后执行
13、- (void)application:(UIApplication*)application didChangeSetStatusBarFrame:(CGRect)oldStatusBarFrame
说明:当StatusBar框变化完成后执行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 非原创,收集,整理,觉得有用就罗列下为避免下次犯迷糊。 IOS 中的 AppDelegate.m/h 文件是很重要...
    西蜀阅读 3,456评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,314评论 19 139
  • UIApplication深入研究 很多时候,我们不需要关心这个类,我们很少继承这个类,偶尔会调用这个类的api来...
    谁的青春不迷茫阅读 5,760评论 1 7
  • application:didFinishLaunchingWithOptions:详解 iOS 程序启动时总会调...
    hhbsdc阅读 9,986评论 0 0
  • 未若柳絮因风起 窗外下起了雪,漫天的大雪。 他们在走廊看雪。看着看着,谢安突然吟道:“白雪纷纷何所似?” 吟完,谢...
    空易水阅读 2,860评论 0 1