[IOS開(kāi)發(fā)指南]第五章 Cocoa Touch 框架

iphone 技術(shù)層結(jié)構(gòu),從上到下:Cocoa Touch,多媒體,核心服務(wù),核心 OS

一.Cocoa Touch層
1.關(guān)鍵技術(shù)
  • 多任務(wù)(UIKit)
  • 打印(UIKit)
  • 數(shù)據(jù)保護(hù):鎖定時(shí)無(wú)法訪(fǎng)問(wèn),解鎖后通過(guò)密鑰訪(fǎng)問(wèn)
  • 蘋(píng)果推送
  • 本地通知
  • 手勢(shì)識(shí)別器
  • 文件共享(/Documents目錄)
  • 點(diǎn)對(duì)點(diǎn)對(duì)戰(zhàn)(藍(lán)牙)
  • 標(biāo)準(zhǔn) VC
  • 外部顯示
2.包含框架
  • UIKit
// 應(yīng)用程序管理
// 用戶(hù)界面管理
// 圖形和窗口支持
// 多任務(wù)
// 手勢(shì)的處理
// 標(biāo)準(zhǔn) VC
// 對(duì)文本和 WEB 內(nèi)容的支持
// 復(fù)制粘貼的支持
// 動(dòng)畫(huà)
// 通過(guò) URL 和其他程序交互
// 蘋(píng)果推送
// 本地通知
// 定制輸入鍵盤(pán)
// 對(duì)殘障人士的易用性支持
// 對(duì) PDF 的支持
// 對(duì)設(shè)備信息的支持:各種傳感器,攝像頭,照片庫(kù),設(shè)備名和型號(hào),電池狀態(tài),耳機(jī)線(xiàn)控
  • MapKit
// 地圖縮放,標(biāo)記地點(diǎn),在地圖上顯示路線(xiàn)
  • GameKit
// 點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)通信(Bonjour):語(yǔ)音通話(huà)
  • Message UI / Address Book UI / Event Kit UI
// 短信郵件,聯(lián)系人,日歷事件
  • iAd
// 顯示廣告(view),事件響應(yīng)

二.多媒體層

  • AVFoundation
// 處理音頻,視頻 : 電影錄制,音軌管理,音頻平移等
  • CoreAudio
// 處理音頻,包含 ToolBox,AudioUnit
// ToolBox : 播放警報(bào)聲,振動(dòng)
// AudioUnit : 處理聲音
  • CoreImage
// 處理圖像的高級(jí)功能 : 人臉識(shí)別,圖像過(guò)濾等
  • CoreGraphics
// 繪圖的高級(jí)功能
  • CoreText : 處理文本的高級(jí)功能
// 處理文本的高級(jí)功能
  • Image I/O
// 處理圖像的導(dǎo)入導(dǎo)出
  • Media Player
// 視頻播放器
  • OpenGLES
// 繪制2D和3D 動(dòng)畫(huà)
  • Core Animation
// 創(chuàng)建動(dòng)畫(huà)效果

核心服務(wù)層(通過(guò) Foundation 框架使用)

  • Accounts
// 管理賬戶(hù)
  • Address Book
// 管理通訊錄
  • CFNetwork
// 訪(fǎng)問(wèn) BSD 套接字,HTTP,FTP 協(xié)議請(qǐng)求,以及發(fā)現(xiàn) Bonjour 服務(wù)
  • Core Data
// 數(shù)據(jù)模型框架 : 包括序列化,SQLite 數(shù)據(jù)庫(kù)
  • Core Foundation
// Foundation 框架的 C 版本
  • Foundation
// 與 View 無(wú)關(guān)的系統(tǒng)層級(jí)的管理功能 : 線(xiàn)程,本地化等
  • Event Kit
// 日歷相關(guān)功能
  • Core Location
// 定位服務(wù)
  • Core Motion
// 與運(yùn)動(dòng)相關(guān)的功能 : 加速度傳感器,陀螺儀等
  • Quick Look
// 文件瀏覽
  • Store Kit
// 應(yīng)用內(nèi)購(gòu)功能
  • SystemConfiguration
// 處理設(shè)備的配置信息 : 網(wǎng)絡(luò)配置狀態(tài)等

核心 OS 層

  • Accelerate
// 簡(jiǎn)化計(jì)算任務(wù),包括數(shù)字信號(hào)處理功能
  • External Accessory
// 針對(duì)配件的接口
  • Security
// 加密功能
  • System
// 訪(fǎng)問(wèn) UNIX 開(kāi)發(fā)環(huán)境的工具

Cocoa 中的核心類(lèi)

  • UIApplication
// 程序運(yùn)行過(guò)程中會(huì)創(chuàng)建一個(gè) UIApplication 類(lèi)的單例,通過(guò)[UIApplication sharedApplication]獲取單例
// 主要工作是負(fù)責(zé)處理 event : 將事件放入 event queue 逐個(gè)處理.處理時(shí)把事件發(fā)送給 key window
// 同時(shí)維護(hù)一個(gè) UIWindow 對(duì)象列表,可以訪(fǎng)問(wèn)任何 UIView 對(duì)象
// 有一個(gè) AppDelegate,負(fù)責(zé)處理生命周期事件,系統(tǒng)事件(來(lái)電等)
  • UIWindow
// 放置視圖的容器
// 負(fù)責(zé) : 顯示視圖,將事件發(fā)給視圖
// 應(yīng)用通常只有一個(gè)窗口,但是電影播放器等會(huì)新增一個(gè)窗口
  • UIResponder
// 可以響應(yīng) event 的對(duì)象,UIView 的父類(lèi)
// key window 派發(fā) enent 時(shí),可能有多個(gè) view 響應(yīng)這個(gè) event,事件將沿著響應(yīng)鏈(視圖層級(jí))向上傳遞,能處理這個(gè) event 的 view 成為 first responder.例如給文本框輸入文字時(shí),文本框是 first responder,退出編輯后,文本框應(yīng)取消 first responder 狀態(tài)
  • UIView
// 定義一塊矩形區(qū)域,并管理區(qū)域的屏幕顯示
// 可以使用嵌套的形式形成層次結(jié)構(gòu):父視圖包含子視圖
  • UIControl
// UIview 的子類(lèi),是幾乎所有原生界面控件(UIButton,UISwitch,UITextField 等)的父類(lèi)
// 不能直接使用,只定義了子類(lèi)需要實(shí)現(xiàn)的方法
  • 原生界面控件
// UILable : 標(biāo)簽(顯示靜態(tài)文本,不可編輯)
// UITextField : 單行文本框(可編輯).常用屬性 : text,placeholder
// UITextView : 多行文本框(可編輯),繼承自 UIScrollView,可自動(dòng)添加滑動(dòng)條.由于輸入文本可以包括換行符,所以關(guān)閉鍵盤(pán)需要專(zhuān)門(mén)的事件.常用屬性 : text,editable

// UIButton : 按鈕

// UISwitch : 開(kāi)關(guān)

// UISegmentControl : 分段控件(長(zhǎng)條)

// UISlider : 滑塊(調(diào)節(jié)音量,亮度等)
// UIStepper : 步進(jìn)控件(類(lèi)似 UISlider,區(qū)別在于不能隨意調(diào)節(jié)數(shù)字,只能按段來(lái))


// UIPicker : 選擇器,常用子類(lèi) : UIDatePicker

// UIPopoverController : 彈出框(ipad 特有)

// UIColor : 顏色
// 常用方法:
// [UIColor colorWithRed:(CGFloat) green:(CGFloat) blue:(CGFloat) alpha:(CGFloat)],數(shù)值都是從0.0~1.0,透明度0.0為完全透明
// [UIColor colorWithCGColor:(nonnull CGColorRef)],通過(guò) CGColor 實(shí)例獲得 UIcolor 實(shí)例
// @property(nonatomic,readonly) CGColorRef CGColor; 通過(guò) UIColor 實(shí)例獲得 CGColor 實(shí)例,常用于 Quartz 繪圖

// UITableView : 列表,包含 Section(段落) 和 Cell(行)
  • 繼承鏈
// 原生控件(UIButton 等) -> UIControl (不可使用) -> UIView -> UIResponder (不可使用)
  • event 的產(chǎn)生及處理過(guò)程
// event 流向 : 系統(tǒng)框架 -> UIApplication 單例 -> key window -> view
// 1.系統(tǒng)框架將因用戶(hù)行為產(chǎn)生的數(shù)據(jù)(觸摸屏,傳感器,陀螺儀等)封裝成 event
// 2.將 event 發(fā)給 UIApplication 單例,UIApplication 單例將 event 放入 event queue 逐個(gè)處理
// 3.處理時(shí)將 event 發(fā)送給應(yīng)用的 key window,由 key window 派發(fā)給響應(yīng)鏈(responder chain)最下層的 view
// 4.如果這個(gè) view 不能處理事件,就沿著響應(yīng)鏈向上層 view 傳遞,直到找到能處理事件的對(duì)象(first responder)
// 響應(yīng)鏈最下層是視圖層級(jí)最上層:最靠近屏幕的層,沒(méi)有子 view
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市赢乓,隨后出現(xiàn)的幾起案子驻民,更是在濱河造成了極大的恐慌拥诡,老刑警劉巖宾毒,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸣峭,死亡現(xiàn)場(chǎng)離奇詭異前普,居然都是意外死亡肚邢,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)拭卿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)骡湖,“玉大人,你說(shuō)我怎么就攤上這事峻厚∠煸蹋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵惠桃,是天一觀的道長(zhǎng)浦夷。 經(jīng)常有香客問(wèn)我,道長(zhǎng)刽射,這世上最難降的妖魔是什么军拟? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮誓禁,結(jié)果婚禮上懈息,老公的妹妹穿的比我還像新娘。我一直安慰自己摹恰,他們只是感情好辫继,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布怒见。 她就那樣靜靜地躺著,像睡著了一般姑宽。 火紅的嫁衣襯著肌膚如雪遣耍。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天炮车,我揣著相機(jī)與錄音舵变,去河邊找鬼。 笑死瘦穆,一個(gè)胖子當(dāng)著我的面吹牛纪隙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播扛或,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼绵咱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了熙兔?” 一聲冷哼從身側(cè)響起悲伶,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎住涉,沒(méi)想到半個(gè)月后麸锉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡秆吵,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年淮椰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纳寂。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡主穗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出毙芜,到底是詐尸還是另有隱情忽媒,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布腋粥,位于F島的核電站晦雨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏隘冲。R本人自食惡果不足惜闹瞧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望展辞。 院中可真熱鬧奥邮,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蘸朋,卻和暖如春核无,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背藕坯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工团南, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人堕担。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓已慢,卻偏偏與公主長(zhǎng)得像曲聂,于是被迫代替她去往敵國(guó)和親霹购。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • iOS的系統(tǒng)架構(gòu)分為四個(gè)層次:核心操作系統(tǒng)層(Core OS layer)朋腋、核心服務(wù)層(Core Services...
    zhaihongxia閱讀 2,790評(píng)論 0 3
  • 在iOS中框架是一個(gè)目錄齐疙,包含了共享資源庫(kù),用于訪(fǎng)問(wèn)該資源庫(kù)中儲(chǔ)存的代碼的頭文件旭咽,以及圖像贞奋、聲音文件等其他資源。共...
    wo不懂閱讀 1,422評(píng)論 3 3
  • 6轉(zhuǎn)載-->>IOS框架和服務(wù) 在iOS中框架是一個(gè)目錄穷绵,包含了共享資源庫(kù)轿塔,用于訪(fǎng)問(wèn)該資源庫(kù)中儲(chǔ)存的代碼的頭文件,...
    李小六_閱讀 3,606評(píng)論 2 24
  • 在iOS中框架是一個(gè)目錄仲墨,包含了共享資源庫(kù)勾缭,用于訪(fǎng)問(wèn)該資源庫(kù)中儲(chǔ)存的代碼的頭文件,以及圖像目养、聲音文件等其他資源俩由。共...
    ch123閱讀 1,778評(píng)論 0 1
  • 一直以來(lái),有一種心境總是沉甸甸的癌蚁,抑抑的找不到出處幻梯。紛飛的季節(jié)櫻花落下,柳絮飄過(guò)努释,定格碘梢,才知來(lái)之心之角落的那根弦,...
    耘兒910閱讀 498評(píng)論 0 6