UIApplication 簡單筆記

Contents

  • 常用的功能
    • 取得 application instance
    • 搖晃 undo 設定
    • push notification
    • 自動睡眠功能
    • status bar 的控制
    • 控制 network active indicator
    • Background
  • 小結

    所有的 iPhone 應用程式都有唯一的一個 UIApplication instance,這個 instance 提供 GUI 程式訊息(Event)處理的主迴圈(如果你寫過 Win32 sdk 程式應該很清楚這玩意),和一些 屬於應用程式的外觀設定和行為,如 status bar, Application Icon Badge Number [1] 等等。

    (1)Application Icon Badge Number 显示在应用程式Icon上面的数字(见下图)。 


    常用的功能

    UIApplication 會用到的東西其實沒有很多,這邊簡單介紹一下常用的部份。

    取得 application instance

    前面有提到在 iPhone 應用程式中有唯一的一個 UIApplication instance , 要存取諸如 status bar 目前的位置狀態或是設定註冊 Push Notification [2] 等等。

    如何取得? 很簡單 copy 下面的 code 就好,不會有第二種寫法,也完全不用考量什麼 記憶體管理。

    UIApplication *app = [UIApplication sharedApplication];

    [2]Push Notification: iPhone 3.0 新增的功能,用來唬爛可以滿足部分多工需求的功能。(好啦,是真的還不錯)

    UIApplication 簡單筆記_第1张图片

    Apple Waves 有篇十分精采的解說 (連結請自便)

    http://applemacnews.mysinablog.com/index.php?op=ViewArticle&articleId=1884149

    搖晃 undo 設定

    iPhone 3.0 新增的酷炫功能! 搖晃手機 undo也是在 UIApplication 裡面設定的。

    UIApplication* app = [UIApplication sharedApplication];
    // 是的!搖晃時 undo
    app.applicationSupportsShakeToEdit = YES;

    status bar 的控制

    我們都知道 iPhone 可以知道自己在旋轉,並針對垂直或水平提供不同的畫面佈局, status bar 的相關設定用法如下:

    UIApplication* app = [UIApplication sharedApplication];
    app.statusBarOrientation = UIInterfaceOrientationLandscapeLeft;

    ok 想要隱藏 status bar的話,也很簡單:
    UIApplication *app = [UIApplication sharedApplication];
    app.statusBarHidden = YES;

    當然啦這種布林狀態的東西常常需要的動作其實是 toggle,也很簡單:

    UIApplication *app = [UIApplication sharedApplication];
    (app.statusBarHidden) ? (app.statusBarHidden = NO) : (app.statusBarHidden = YES);

    控制 network active indicator

    Network Active Indictor 是什麼? 看圖最清楚:


    控制他顯示與否:

    UIApplication *app = [UIApplication sharedApplication];
    (app.networkActivityIndicatorVisible) ? (app.networkActivityIndicatorVisible = NO) : (app.networkActivityIndicatorVisible = YES);

    Background

    iPhone OS 4.0 的新特色--多工,因應這個新東西 UIApplicaiton 也提供一些背景執行 需要的功能和資訊。

    properties 方面

    applicaitonState 可以得知目前應用程式所處的狀態如 active, background 等等 下面是完整的資訊:

    typedef enum {
       UIApplicationStateActive,
       UIApplicationStateInactive,
       UIApplicationStateBackground
    } UIApplicationState;

    backgroundTimeRemaining 顯示應用程式剩餘多少時間進入 background 的 suspended 狀態。

    iPhone OS 4.0 允許應用程式進入背景後要求額外的系統資源 (cpu time) 來處理額外或是比較 大量的工作,由下面兩個 method 處理這方面的要求和結束要求,記住系統資源是有限的,記憶體 如此, cpu time 亦是如此,請明確使用 endBackgroundTask: 來釋放多工的系統資源。

    小結

    UIApplication 是個很簡單易懂也十分重要的,希望這篇會有幫助。

    文章转自:http://psvsps2.blogspot.com/2010/04/uiapplication-contents-application_20.html

你可能感兴趣的:(cocoa,iPhone,UIApplication)