Cocoa Touch 框架
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本身是一個框架的集合,它包含了眾多子框架,其中最重要最基本的兩個框架是:Foundation 和 UIKit。
Foundation 是框架的基礎,和介面無關,其中包含了大量常用的API;後者是基礎的UI類庫,以後我們在iOS開發中會經常用到。這兩個框架在系統中的位置如下圖
![1400023-5ef945e7d1f72abb.jpg](https://i.iter01.com/images/246f917b171ac9b09d5052d1020730fef10f20696f129aae266bc37179b767a5.jpg)
-
Foundation 框架
iOS程式都是由大量的物件構成,而這些物件的根物件都是NSObject,NSObject就處在Foundation框架之中,具體的類結構如下:
![1400023-754f6003f9bfd7a1.jpg](https://i.iter01.com/images/cd3f8563cee50f79123f7abd3e1eeb30d971083be690da5bbfd76157a7f6edb7.jpg)
![1400023-80ab64f2bc7ff100.jpg](https://i.iter01.com/images/eca4a38fc2949e48652069d28723cd246f75b686c73dfe33a469477abaca086c.jpg)
![1400023-fdcf685aefed7e37.jpg](https://i.iter01.com/images/2b3c4b294f7ac7ddb97f609b41c68c53744047ba0c2a2380e54b5c92e4c601b4.jpg)
將上圖Foundation框架中的類進行邏輯分類如下:
- 值物件
- 集合
- 作業系統服務包括下面三個:檔案系統、URL和 程式間通訊。 這個範疇中的大部分類代表不同的系統埠、套接字、和名字伺服器,對實現底層的IPC很有用。NSPipe代表一個BSD管道,即一種程式間的單向通訊通道。 執行緒和子任務。 NSThread類使您可以建立多執行緒的程式,而各種鎖(lock)類則為彼此競爭的執行緒在訪問程式資源時提供各種控制機制。通過NSTask,您的程式可以分出 一個子程式來執行其它工作或進行進度監控。
- 通知
- 歸檔和序列化
- 表示式和條件判斷
- Objective-C語言服務
-
UIKit 框架
應用程式可以通過三種方式使用UIKit建立介面
1. 在使用者介面工具(interface Buidler)從物件庫裡 拖拽視窗,檢視或者其他的物件使用。
2. 用程式碼建立
3. 通過繼承UIView類或間接繼承UIView類實現自定義使用者介面
框架類組織架構圖:
![1400023-292bfed1d2311bf8.jpg](https://i.iter01.com/images/6977fca4d343fb5a8a3df9f741aea8f904c3ff8635c124d5f2a35000206942e1.jpg)
在圖中可以看出,UIResponder 類是圖中最大分支的根類,UIResponder處理響應事件和響應鏈,定義了介面和預設行為。當使用者用手指滾動列表或者在虛擬鍵盤上輸入時,UIKit就生成事件傳送給UIResponder響應鏈,直到鏈中有物件處理這個事件。
相應的核心物件,比如:UIApplication ,UIWindow,UIView都直接或間接的從UIResponder繼承。
相關文章
- WWDC 2018:Cocoa Touch新特性與改進
- Swift與Cocoa框架開發Swift框架
- Touch Bar上的彩虹貓 - Touch Bar Nyan Cat
- Linux touch命令Linux
- MVVM+Reactive Cocoa專案完整例項MVVMReact
- 一次 Cocoa App(macOS App)開發嘗試APPMac
- 給 Cocoa 的系統 Protocol 提供預設實現Protocol
- 【IOS開發基礎系列】Cocoa基礎專題iOS
- Linux基礎命令—touchLinux
- Linux基礎命令---touchLinux
- 移動端touch事件事件
- 移動端 touch事件事件
- linux每日命令(10):touch命令Linux
- 3D Touch 詳解3D
- 看看這些3D Touch技巧 你真的用好3D Touch了嗎?3D
- touch事件與click事件區別事件
- 玩轉iOS開發:Touch ID整合iOS
- iOS GestureRecognizer與UIResponder touch事件響應iOSUI事件
- linux中用touch命令建立新檔案Linux
- Touch Bar Piano for mac觸控鋼琴Mac
- 【譯】系統的學習 Android TouchAndroid
- 每天學一個 Linux 命令(13):touchLinux
- Flutter——原生View的Touch事件分發流程FlutterView事件
- 在 Linux 下 9 個有用的 touch 命令示例Linux
- MacBook Pro可能會拋棄Touch Bar,重振MagSafeMac
- js實現簡易的touch事件(es5)JS事件
- touch事件和click事件多次觸發的問題事件
- [譯] 蘋果公司如何修復 3D Touch蘋果3D
- 手機端html5觸屏事件(touch事件)HTML事件
- 小米 6 刷機 Ubuntu Touch 的踩坑記錄Ubuntu
- HYBBS2.3論壇M-TOUCH模板原始碼原始碼
- 不到30行, 用any-touch實現一個drawer
- 原生 js 實現移動端 Touch 滑動反彈JS
- 深入研究-webkit-overflow-scrolling:touch及ios滾動WebKitiOS
- JavaScript實戰專案:移動端 Touch 輪播圖JavaScript
- Swift如何給應用新增3D Touch選單Swift3D
- dp on 凸殼總結&gym 101806 T Touch The Sky 題解
- Mac自定義觸控欄 Touch Bar的顯示教程Mac
- Touch即將上市,Oculus卻表示遊戲手柄才是真愛遊戲