Cocoa Touch 框架

weixin_34249678發表於2016-11-08

Cocoa Touch 框架是iOS開發的基礎,瞭解Cocoa Touch框架,對我們開發iOS軟體有很大的幫助。

  • Cocoa Touch是什麼?

Cocoa Touch 是 iOS作業系統的程式的執行環境。

Cocoa區別於Cocoa Touch, 兩者都包含OC執行時的兩個核心框架。

Cocoa包含Foundation和AppKit框架,可用於開發Mac OS X系統的應用程式。
Cocoa Touch包含Foundation和UIKit框架,可用於開發iPhone OS 系統的應用程式。
Cocoa是Mac OS X的開發環境,Cocoa Touch是 iPhone OS的開發環境。

請注意:術語 “Cocoa” 經常被用於泛指所有基於Objective-C執行時且派生自根類(NSObject)的類或物件

Cocoa程式是由一些物件組成,而這些物件的類最後都是繼承於它們的根類 :NSObject。而且它們都是基於Objective-C執行環境的。

  • Cocoa framework

Cocoa本身是一個框架的集合,它包含了眾多子框架,其中最重要最基本的兩個框架是:FoundationUIKit

Foundation 是框架的基礎,和介面無關,其中包含了大量常用的API;後者是基礎的UI類庫,以後我們在iOS開發中會經常用到。這兩個框架在系統中的位置如下圖

1400023-5ef945e7d1f72abb.jpg
  • Foundation 框架

iOS程式都是由大量的物件構成,而這些物件的根物件都是NSObject,NSObject就處在Foundation框架之中,具體的類結構如下:

1400023-754f6003f9bfd7a1.jpg
1400023-80ab64f2bc7ff100.jpg
1400023-fdcf685aefed7e37.jpg

將上圖Foundation框架中的類進行邏輯分類如下:

  1. 值物件
  2. 集合
  3. 作業系統服務包括下面三個:檔案系統、URL和 程式間通訊。 這個範疇中的大部分類代表不同的系統埠、套接字、和名字伺服器,對實現底層的IPC很有用。NSPipe代表一個BSD管道,即一種程式間的單向通訊通道。 執行緒和子任務。 NSThread類使您可以建立多執行緒的程式,而各種鎖(lock)類則為彼此競爭的執行緒在訪問程式資源時提供各種控制機制。通過NSTask,您的程式可以分出 一個子程式來執行其它工作或進行進度監控。
  4. 通知
  5. 歸檔和序列化
  6. 表示式和條件判斷
  7. Objective-C語言服務
  • UIKit 框架

應用程式可以通過三種方式使用UIKit建立介面
1. 在使用者介面工具(interface Buidler)從物件庫裡 拖拽視窗,檢視或者其他的物件使用。
2. 用程式碼建立
3. 通過繼承UIView類或間接繼承UIView類實現自定義使用者介面

框架類組織架構圖:

1400023-292bfed1d2311bf8.jpg

在圖中可以看出,UIResponder 類是圖中最大分支的根類,UIResponder處理響應事件和響應鏈,定義了介面和預設行為。當使用者用手指滾動列表或者在虛擬鍵盤上輸入時,UIKit就生成事件傳送給UIResponder響應鏈,直到鏈中有物件處理這個事件。
相應的核心物件,比如:UIApplication ,UIWindow,UIView都直接或間接的從UIResponder繼承。

相關文章