1.AppDelegate.h
//模板預設引入程式需要使用“類”的架構,即UIKit.h標頭檔,使它包含在程式中
#import <UIKit/UIKit.h>
//此處@class聲明程式中的“類”名稱為MyViewController
@class MyViewController;
//此處@interface聲明程式介面的名稱為MyAppDelegate,其中NSObject表示它的“類”符合UIApplicationDelegate協議,接著UIApplicationDelegate,此方法為應用程式提供了關於觸發的關鍵事件資訊,例如什麼時候程式運行完成,什麼時候記憶體不足,什麼時候重要變化發生
@interface MyAppDelegate : NSObject <UIApplicationDelegate> {
//定義一個程式顯示視窗的對象
UIWindow *window;
//加入視圖控制實際變數的對象
MyViewController *viewController;
}
//此處@Property聲明程式的屬性,並且加入在前面@interface中指定的相同對象, 其中nonatomic是使用單線程機制減少系統資源使用,並將更改方法和修改方法產生在
//Property(屬性),
//接著retain,Property的可選項,表明向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框變化完成後執行