iOS的主要架構介紹

來源:互聯網
上載者:User

1:原文連結:http://www.open-open.com/lib/view/open1343210425380.html

     架構是一個目錄,這個目錄包含了共用庫,訪問共用庫裡代碼的標頭檔,和其它的圖片和聲音的資源檔。一個共用庫定義的方法或函數可以被應用程式調用。

       IOS提供了很多你可以在應用程式裡調用的架構。要使用一個架構,需要將它添加到你的項目中,你的項目才可以使用它。許多應用程式都使用了如 Foundation、UIKit、和Core Graphics這些架構。根據你為應用程式選擇的模版,相關的架構就已經被自動引入了。如果預設加入的架構不能滿足你的應用程式的需求,你也可以加入需 要的架構。

       看看HelloWorld.xcodeproj項目裡都包含了哪些架構(註:HelloWorld.xcodeproj是《Your First iOS App tutorial 》這篇教程裡的一個項目)

       1.在XCode裡開啟HelloWorld.xcodeproj項目(如果還沒有開啟)

       2. 在project navigator視窗裡點擊,點擊Frameworks目錄前面的三角形表徵圖。你會看到:

            UIKit.framework,Foundation.framework, 和CoreGraphics.framework

       3. 點擊任意一個framework前面的三角,然後再點擊Headers前面的三角,可以看到架構裡的標頭檔。

        每個架構對應IOS系統裡的一層,每層建立在它下面層的上面。應該盡量使用上層的架構來代替下面的架構。更高層次的架構是對底層架構基於對象的抽象。


iOS應用程式基底於Foundation和UIKit架構

       在你開發程式時,主要使用架構就是Foundation和UIKit,因為它們包含了你需要的大部分東西。

Foundation架構為所有的應用程式提供基本系統服務

        你的應用程式,UIKit和其它的架構都是建立在Foundation架構上面的。Foundation架構是用Object-C對Core Foundation架構裡許多特性的封裝。

       使用Foundation可以:

  • 建立和管理集合,比如數組和字典
  • 訪問儲存在應用程式裡的圖片和其它資源
  • 建立和管理字串
  • 提交和接收通知
  • 建立日期和時間對象
  • 自動探索IP網路上的裝置
  • 操作URL流
  • 執行非同步代碼

      你已經在《Your First iOS App》裡使用到了Foundation架構。比如,你使用一個NSString類的執行個體儲存使用者輸入的userName。你還使用了Foundation架構的initWithFormat方法建立了一個字串。

UIKit架構提供建立基於觸摸使用者介面的類

      所有的iOS應用程式都基於UIKit,你不能是應用程式脫離這個架構。UIKit提供了在螢幕上繪製的機制,捕獲事件,和建立通用使用者介面元素。UIKit也通過管理顯示在螢幕上的組件來組織複雜的項目。

      使用UIKit可以:

  • 構建和管理你的使用者介面
  • 捕獲觸摸和基於移動的事件
  • 呈現文字和web內容
  • 最佳化你的多任務程式
  • 建立定製的使用者介面元素

     在《YouFirst iOS App Tutorial》裡,你也使用到了UIKit。當你仔細查看程式是怎麼運行起來的時候,你會看到UIApplicationMain函數建立一個 UIApplication類的執行個體,這個執行個體會捕獲進來的使用者事件。你實現UITextFieldDelegate協議,然後在使用者按下Done時隱藏 鍵盤。實際上,你是在使用UIKit建立使用者介面上的UITextField, UILabel,和UIButton類。


你需要知道的其它重要的架構Core Data , Core Graphics, Core Animation,和OpenGLES架構都是進階的技術。所以這些架構對於你開發應用程式也是很重要的,它們都需要時間去學習和掌握。 Core Data架構管著理應用程式資料模型

         Core Data提供對象的管理,使用Core Data,你可以建立模型對象,並管理這些對象。你管理這這些對象間的聯絡並修改資料。Core Data提供的內建SQLlite技術可以高效的管理資料。

         使用Core Data可以:

  • 在庫裡儲存和接收對象
  • 提供基本的undo/redo
  • 自動驗證屬性值
  • 過濾、分組和最佳化記憶體中的資料
  • 用[NSFetchedResultsController]管理表視圖中的結果
  • 支援基於文檔的應用程式
Core Graphics架構協助你建立圖形

       高品質的圖形對於所有的iOS應用程式都是很重要的。在iOS中最簡單且最快捷的建立圖形的方式是使用UIKit架構提供的基於預渲染圖形的視圖和控 件,然後讓UIKit和iOS完成繪製。但是當你需要建立複雜的圖形時,Core Graphics則提供了更底層的庫來協助你。

       使用Core Graphics可以:

  • 建立基於路徑的繪圖
  • 消除鋸齒渲染
  • 添加梯度、圖片和顏色
  • Use coordinate-space transformations.
  • 建立、顯示和分析PDF文檔
Core Animation允許你建立進階的動畫和虛擬效果

           UIKit提供建立在Core Animation之上的動畫。如果你需要比UIKit能力更進階的功能,可以直接使用Core Animation。Core Animation介面包含在Quartz Core架構裡。使用Core Animation可以建立嵌套的對象,並且可以對它們操作、旋轉、縮放和轉換。使用Core animation,你可以建立動態使用者介面而不用使用更底層的圖形API,如OpenGL ES。

           使用Core Animation可以:

  • 建立定製動畫
  • 添加定時函數和圖形
  • 支援幀動畫
  • Specify graphical layout constraints.
  • Group multiple-layer changes into anatomic update.
OpenGL ES 架構提供2D和3D繪圖工具

OpenGL ES支援2D和3D繪圖,Apple的OpenGL ES實現通過硬體提供了高速的全屏遊戲式的應用程式。

           使用OpenGL ES可以:

  • 建立2D和3D圖形
  • 建立更複雜的圖形,比如資料虛擬化、類比飛行,或者視頻遊戲
  • 訪問底層圖形裝置
根據需要向項目中添加其它架構

           還有許多架構可以添加到你的程式裡。當你決定使用一個架構但項目裡卻沒有引入這個架構時,你就需要將它加入到你的項目裡。

將別的架構添加到工程裡

    1 開啟工程

    2 點擊項目名,顯示project editor

    3 在TARGETS列表中選中要添加架構的工程

    4 點擊project editor頂部的Build Phases

    5 點擊Link Binary With Libraries前面的三角形開啟這個分組

    6 通過點擊添加(+)來添加一個架構

    7 在列表中選擇一個架構,然後點擊Add按鈕 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.