Cocoa是OS X和 iOS操做系統的程序的運行環境。編程
是什麼因素使一個程序成爲Cocoa程序呢?不是編程語言,由於在Cocoa開發中你可使用各類語言;也不是開發工具,你能夠在命令行上就能夠建立Cocoa程序。Cocoa程序能夠這麼說,它是由一些對象組成,而這些對象的類最後都是繼承於它們的根類 :NSObject。並且它們都是基於Objective-C運行環境的。服務器
iOS中,Cocoa衆多框架中最重要最基本的兩個框架是:Foundation 和 UIKit。多線程
Foundation 和界面無關,也能夠說和界面無關的類基本是Foundation框架的,和界面相關的是UIKit框架。架構
這兩個框架在系統中處於的位置如圖:框架
好吧,那咱們看看兩個框架的類組織架構圖,第一個先看Foundation的,三個圖,包括了Foundation全部的類,圖中灰色的是iOS不支持的,灰色部分是OS X系統的。編程語言
將上圖Foundation框架中的類進行邏輯分類以下:工具
值對象開發工具
集合 ui
操做系統服務 包括下面三個:文件系統和URL 進程間通信。 這個範疇中的大部分類表明不一樣的系統端口、套接字、和名字服務器,對實現底層的IPC頗有用。NSPipe表明一個BSD管道,即一種進程間的單向通信通道。 線程和子任務。 NSThread類使您能夠建立多線程的程序,而各類鎖(lock)類則爲彼此競爭的線程在訪問進程資源時提供各類控制機制。經過NSTask,您的程序能夠分出 一個子進程來執行其它工做或進行進度監控。操作系統
通知
歸檔和序列化
表達式和條件判斷
Objective-C語言服務
應用程序能夠經過三種方式使用UIKit建立界面
在用戶界面工具(interface Buidler)從對象庫裏 拖拽窗口,視圖或者其餘的對象使用。
用代碼建立
經過繼承UIView類或間接繼承UIView類實現自定義用戶界面
框架類組織架構圖:
在圖中能夠看出,responder 類是圖中最大分支的根類,UIResponder爲處理響應事件和響應鏈 定義了界面和默認行爲。當用戶用手指滾動列表或者在虛擬鍵盤上輸入時,UIKit就生成時間傳送給UIResponder響應鏈,直到鏈中有對象處理這個事件。相應的核心對象,好比:UIApplication ,UIWindow,UIView都直接或間接的從UIResponder繼承。