UIApplication詳解

以前剛學iPhone開發時,覺得UIApplication這個東西特NB,特神祕,比如它居然能打開一個URL,而且還是用一個很神祕的方法得到實例:
  1. [UIApplication sharedApplication]  

它對我的神祕感一直保持到今天下午。今天下午負責UI設計的同事在設計,我沒有素材,比較清閒,於是發個狠,專門看了一下UIApplication這個類。果然是難者不會,會者不難,看完之後,這個類的神祕感一下子沒了。下面讓我來揭開它的神祕面紗。

UIApplication,顧名思義,代表的是整個應用做的事,因此每個程序只能有一個,系統使用的是單例模式,就是上面的[UIApplication sharedApplication]來得到一個實例。這個單例實例是在系統啓動時由main函數裏面的UIApplicationMain方法生成,就是每個程序裏都有的AppDelegate,它實現了UIApplicationDelegate的Protocol,也就是AppDelegate的一個實例。每次通過[UIApplication sharedApplication]調用的就是它。

UIApplication在程序裏的角色:它保存一個UIWindow對象序列,用來快速恢復views。它還有很多作用,不過我也不大清楚了。

下面來看看我們能用它來幹什麼:

一、遠程提醒,就是push notification註冊;

二、可以連接到UIUndoManager;

三、檢查能否打開某個URL,並且打開URL;這個功能可以配合應用的自定義URL功能,來檢測是否安裝了某個應用。比如檢測是否安裝了淘寶的應用,可以用下面的代碼:

  1. NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"taobao://item.taobao.com/item.htm?id=12688928896"]];  
  2. // 判斷當前系統是否有安裝淘寶客戶端  
  3.     if ([[UIApplication sharedApplication] canOpenURL:url]) {  
  4.         // 如果已經安裝淘寶客戶端,就使用客戶端打開鏈接  
  5.         [[UIApplication sharedApplication] openURL:url];  
  6.     }  
四、註冊Local Notification;

五、在後臺運行以及從後臺轉爲前臺時的操作;

六、防止屏幕睡眠:

  1. [[UIApplication sharedApplication].idleTimerDisabled=YES;  
七、手動調整status bar的位置和狀態,如設置爲豎屏、橫屏等;

八、設置badge number,就是圖標右上角的數字;

九、每當應用聯網時,在狀態欄上會顯示聯網小菊花。UIApplication可以設置是否出現。

十。。。還有一些應用,不過那些更不常用,而且我也看不太懂。就寫到這裏吧。

發佈了4 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章