项目中AppDelegate详解
1.AppDelegate.h
//模板默認引入程序需要使用“類”的框架,即UIKit.h頭文件,使它包含在程序中??
#import?<UIKit/UIKit.h>?
?
//此處@class聲明程序中的“類”名稱為MyViewController??
@class?MyViewController;??
?
//此處@interface聲明程序界面的名稱為MyAppDelegate,其中NSObject表示它的“類”符合UIApplicationDelegate協(xié)議,接著UIApplicationDelegate,此方法為應(yīng)用程序提供了關(guān)于觸發(fā)的關(guān)鍵事件信息,例如什么時候程序運行完成,什么時候內(nèi)存不足,什么時候重要變化發(fā)生??
@interface?MyAppDelegate?:?NSObject?<UIApplicationDelegate>?{??
??????
????//定義一個程序顯示窗口的對象??
????UIWindow?*window;??
??????
????//加入視圖控制實際變量的對象??
????MyViewController?*viewController;??
}??
?
//此處@Property聲明程序的屬性,并且加入在前面@interface中指定的相同對象,?其中nonatomic是使用單線程機制減少系統(tǒng)資源使用,并將更改方法和修改方法生成在
//Property(屬性),??
//接著retain,Property的可選項,表明向Property
(屬性)的對象發(fā)送一個retain(保留消息),??
//而IBOutlet表示對象在Interface?Builder(Storyboard)中創(chuàng)建。???
?
//例如下面的代碼在應(yīng)用程序中顯示了一個窗口控件,
把這個控件連接到nib文件并顯示在Interface?Builder?(Storyboard)?
@property?(nonatomic,?retain)?IBOutlet?UIWindow?*window;??
?
//又例如,代碼在應(yīng)用程序中顯示了一個視圖控制控件,
把這個控件連接到nib文件并顯示在?Interface?Builder?(Storyboard)
@property?(nonatomic,?retain)?IBOutlet?MyViewController?*viewController;??
?
//程序結(jié)束點,表明結(jié)束MyViewController.h文件??
@end??
2.AppDelegate.m
?
協(xié)議中定義的這些需要實現(xiàn)的方法的作用:
1、-??(void)applicationWillResignActive:(UIApplication?*)application
說明:當應(yīng)用程序?qū)⒁敕腔顒訝顟B(tài)執(zhí)行,在此期間,應(yīng)用程序不接收消息或事件,比如來電話了
2、-??(void)applicationDidBecomeActive:(UIApplication?*)application
說明:當應(yīng)用程序入活動狀態(tài)執(zhí)行,這個剛好跟上面那個方法相反
3、-?(void)applicationDidEnterBackground:(UIApplication??*)application
說明:當程序被推送到后臺的時候調(diào)用。所以要設(shè)置后臺繼續(xù)運行,則在這個函數(shù)里面設(shè)置即可
4、-??(void)applicationWillEnterForeground:(UIApplication?*)application
說明:當程序從后臺將要重新回到前臺時候調(diào)用,這個剛好跟上面的那個方法相反。
5、-??(void)applicationWillTerminate:(UIApplication?*)application
說明:當程序?qū)⒁顺鍪潜徽{(diào)用,通常是用來保存數(shù)據(jù)和一些退出前的清理工作。這個需要要設(shè)置UIApplicationExitsOnSuspend的鍵值。
6、-??(void)applicationDidReceiveMemoryWarning:(UIApplication?*)application
說明:iPhone設(shè)備只有有限的內(nèi)存,如果為應(yīng)用程序分配了太多內(nèi)存操作系統(tǒng)會終止應(yīng)用程序的運行,在終止前會執(zhí)行這個方法,通常可以在這里進行內(nèi)存清理工作防止程序被終止
7、-?(void)applicationSignificantTimeChange:(UIApplication*)application
說明:當系統(tǒng)時間發(fā)生改變時執(zhí)行
8、-??(void)applicationDidFinishLaunching:(UIApplication*)application
說明:當程序載入后執(zhí)行
9、-??(void)application:(UIApplication)application??willChangeStatusBarFrame:(CGRect)newStatusBarFrame
說明:當StatusBar框?qū)⒁兓瘯r執(zhí)行
10、-??(void)application:(UIApplication*)application?willChangeStatusBarOrientation:
(UIInterfaceOrientation)newStatusBarOrientation
duration:(NSTimeInterval)duration
說明:當StatusBar框方向?qū)⒁兓瘯r執(zhí)行
11、-??(BOOL)application:(UIApplication*)application?handleOpenURL:(NSURL*)url
說明:當通過url執(zhí)行
12、-??(void)application:(UIApplication*)application??didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation
說明:當StatusBar框方向變化完成后執(zhí)行
13、-??(void)application:(UIApplication*)application?didChangeSetStatusBarFrame:(CGRect)oldStatusBarFrame
說明:當StatusBar框變化完成后執(zhí)行
轉(zhuǎn)載于:https://www.cnblogs.com/jaenson/p/3718774.html
總結(jié)
以上是生活随笔為你收集整理的项目中AppDelegate详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 写个随笔
- 下一篇: day3_python学习笔记_chap