成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iPhone應用程序生命周期講解

移動開發 iOS
本文介紹的是iPhone應用程序生命周期講解,很詳細的為友們介紹了生命周期,我們一起來看內容。

iPhone應用程序生命周期講解是本文要介紹的內容,不多說,直接進入話題。iPhone應用程序是由主函數main啟動,它負責調用UIApplicationMain函數,該函數的形式如下所示:

  1. int UIApplicationMain (int argc,char *argv[], NSString *principalClassName, NSString *delegateClassName); 

那么UIApplicationMain函數到底做了哪些事情呢?這個函數主要負責三件事情:

(1)從給定的類名初始化應用程序對象,也就是初始化UIApplication或者子類對象的一個實例,如果你在這里給定的是nil,那么系統會默認UIApplication類,也就主要是這個類來控制以及協調應用程序的運行。在后續的工作中,你可以用靜態方法sharedApplication 來獲取應用程序的句柄。

(2)從給定的應用程序委托類,初始化一個應用程序委托。并把該委托設置為應用程序的委托,這里就有如果傳入參數為nil,會調用函數訪問 Info.plist文件來尋找主nib文件,獲取應用程序委托。

(3)啟動主事件循環,并開始接收事件。

上面是UIApplicationMain函數的工作,接下來一個問題是應用程序視圖的顯示、消息的控制怎么辦?下面就是UIApplication(或者子類)對象的職責,這個對象主要做下面幾件事:

(1)負責處理到來的用戶事件,并分發事件消息到應該處理該消息的目標對象(sender,  action)。

(2)管理以及控制視圖,包括呈現、控制行為、當前顯示視圖等。

(3)該對象有一個應用程序委托對象,當一些生命周期內重要事件(可以包括系統事件或者生命周期控制事件)發生時,應用程序通知該對象。例如,應用程序啟動、內存不夠了或者應用程序結束等,讓這些事件發生時,應用程序委托去響應。

通過上面的分析,可以知道UIApplication對開發者來說,是一個黑箱,它也可以是。因為所有的操作,都可以由它的委托來幫我們完成,它只需要在后面維護一些不可更改的東西,如事件消息分發和傳遞、給委托發送事件處理請求等等,如,應用程序加載處理完畢,它會發送消息給委托,然后委托可以在 applicationDidFinishLanching委托函數中去實現開發者想要的動作。利用XCODE在創建應用程序時,會默認實現一個應用程序委托類。而對于加載的視圖,則有視圖相關的委托類來處理視圖加載過程的生命事件。下面說明委托主要可以辦哪些事情:

控制應用程序的行為

  1. - (void)applicationDidFinishLaunching:(UIApplication *)application 

應用程序啟動完畢。

  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

當由于其它方法打開應用程序(如URL指定或者連接),通知委托啟動完畢

  1. - (void)applicationWillTerminate:(UIApplication *)application 

 

通知委托,應用程序將在關閉 退出,請做一些清理工作。

  1. - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application  

通知委托,應用程序收到了為來自系統的內存不足警告。-(void)applicationSignificantTimeChange:(UIApplication *)application

通知委托系統時間發生改變(主要是指時間屬性,而不是具體的時間值)

打開URL

  1. - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 

打開指定的URL

控制狀態欄方位變化

  1. – application:willChangeStatusBarOrientation:duration: 

設備方向將要發生改變

  1. – application:didChangeStatusBarOrientation:  

活動狀態改變

  1. - (void)applicationWillResignActive:(UIApplication *)application 

通知委托應用程序將進入非活動狀態,在此期間,應用程序不接收消息或事件。-(void)applicationDidBecomeActive:(UIApplication *)application

通知委托應用程序進入活動狀態,請恢復數據

可以看到UIApplication的頭文件實現

  1. @interface UIApplication :UIResponder <UIActionSheetDelegate>{  
  2. @package  
  3. id<UIApplicationDelegate> _delegate ;  //這就是應用程序委托。  
  4. NSTimer .......  

因此,在UIApplication中處理的系統事件時,只需轉到_delegate這個類去處理,這個類對象就是應用程序委托對象。我們可以從應用程序的單例類對象中得到應用程序委托的對象
UIApplicationDelegate* myDelegate = [[UIApplication sharedApplication] delegate];

UIApplication接收到所有的系統事件和生命周期事件時,都會把事件傳遞給UIApplicationDelegate進行處理,對于用戶輸入事件,則傳遞給相應的目標對象去處理。比如我們在應用程序被來電等消息后,可以調用應用程序委托類的 applicationWillResignActive()方法,這個方法在用戶鎖住屏幕時,也會調用,與之相適應的是應用程序重新被用戶打開時的委托方法。另外常用的就是內存不足的系統警告,此時會調用應用程序委托類的applicationDidReceiveMemoryWarning()方法,然后我們就可以試著釋放一些內存了。

上面就是應用程序生命周期(啟動,中止,恢復,退出等過程)的應用程序處理。

小結:iPhone應用程序生命周期講解的內容介紹完了,希望本文對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-08-10 16:50:10

iPhone生命周期

2015-07-09 15:42:48

ios應用生命周期

2013-07-31 14:50:32

Windows PhoWP應用程序生命周期

2009-06-24 10:34:39

JSF生命周期JSF應用程序

2014-07-11 11:09:10

App應用程序生命周期

2013-09-26 11:20:34

Informatica

2012-05-28 15:37:20

WP程序生命周期

2014-02-24 10:50:32

DevOps云應用

2023-12-21 08:00:00

ChatGPT人工智能大型語言模型

2014-09-28 11:28:02

Android應用程序生命周期

2010-08-01 15:29:04

AndroidDalvik

2025-04-28 01:22:00

2012-08-16 09:38:38

ASP.NET

2010-04-02 09:02:02

ASP.NET MVC

2012-06-20 10:29:16

敏捷開發

2014-07-16 13:39:30

Windows Pho

2011-07-21 10:47:37

iPhone Cocoa 委托

2015-07-08 16:28:23

weak生命周期

2023-04-19 07:50:59

?云原生生命周期管理

2009-09-27 17:23:16

Hibernate應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品在线一区 | 精品一区二区三区在线视频 | 成人av片在线观看 | 亚洲天堂999 | 日韩欧美在线观看视频网站 | 午夜天堂 | 欧美精品一区在线观看 | 成人影院一区二区三区 | av三级 | 久久久久无码国产精品一区 | 日韩成人高清 | 男人av网 | 欧美影院| 九色在线观看 | 91日日| 337p日本欧洲亚洲大胆精蜜臀 | 日韩欧美在线观看 | 天堂久| 成人精品一区二区三区中文字幕 | 永久av | 欧美色性 | 欧美在线视频一区二区 | 婷婷精品| 日韩视频一区二区三区 | 亚洲 欧美 另类 综合 偷拍 | 伊人久久国产 | 国产精品久久久久久久久久久久久久 | 欧美大片久久久 | 国产一区二区毛片 | 中文字幕一级毛片视频 | 天天操夜夜爽 | 密室大逃脱第六季大神版在线观看 | 亚洲精品欧美 | 久久精品一级 | 一区二区三区成人 | av激情影院| 日本精品一区二区在线观看 | 欧美日韩在线一区二区三区 | 久久伊人免费视频 | 成人视屏在线观看 | 中文字幕欧美一区二区 |