【ios開發】項目中AppDelegate詳解

來源:互聯網
上載者:User

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框變化完成後執行

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.