項目中AppDelegate詳解

來源:互聯網
上載者:User

標籤:class   c   int   strong   com   檔案   

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.