国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

CS193P學(xué)習(xí)筆記(一)

2019-11-14 20:02:22
字體:
供稿:網(wǎng)友

1>iOS系統(tǒng)分層

? 1.Core OS

  • 本質(zhì)是一個(gè)Unix內(nèi)核,使用基于BSD的Unix版本,擁有文件系統(tǒng)、套接字、權(quán)限等一系列Unix所具有的特性,并且還具備一些特別應(yīng)用于移動(dòng)設(shè)備的東西,例如電源管理、用于安全管理的鑰匙串訪問;
  • 大多數(shù)API是使用C語(yǔ)言寫的;?

? 2.Core Service

  • 核心服務(wù)層,這是之上的面向?qū)ο蟮囊粚樱@能讓你總能在面向?qū)ο蟮膶由线M(jìn)行編程;
  • 這一層擁有數(shù)組、字典、字符串對(duì)象等等;并且還有面向?qū)ο蟮姆绞絹碓L問文件系統(tǒng);擁有多線程操作;
  • 這一層是面向?qū)ο蟮模?

? 3.Media

  • 媒體層包括OpenAL、PDF、Core Animation、OpenGL ES等等;

? 4.Cocoa Touch

  • 觸控應(yīng)用層,這是UI層;包括Controls、Multi-Touch等等;

2>MVC架構(gòu)

MVC,模型(Model)、視圖(View)、控制器(Controller),也就是一種將應(yīng)用中的所有類組織起來的策略;我們將所有的類歸為三種類型:模型、視圖、控制器;如何知道哪個(gè)類屬于哪一類型呢?

  • 模型定義了程序是“什么”的問題;譬如一個(gè)紙牌匹配游戲,紙牌、牌堆、甚至玩法的邏輯都是獨(dú)立于UI并且存在模型當(dāng)中的;
  • 控制器實(shí)現(xiàn)將模型當(dāng)中的數(shù)據(jù)顯示到屏幕上;紙牌如何抽取到屏幕上是控制器的工作,控制器的任務(wù)就是弄清楚如何將這些牌顯示到屏幕上;
  • 視圖則是控制器的“仆從“,是控制器需要使用的類,視圖中的東西會(huì)被用于構(gòu)建UI,直接與用戶交互;

MVC之間是如何通信的呢?

  • 控制器訪問模型:控制器訪問模型能夠完全地、不受限地訪問,能夠按照任何方式使用模型的公共API;

  • 控制器訪問視圖:同樣是完全不受限地,因?yàn)榭刂破餍枰S意使喚自己的”仆從“,并且我們定義這樣一個(gè)屬性:Outlet,當(dāng)控制器指向視圖時(shí),我們將該指針稱為Outlet;

  • 模型與視圖相互訪問:MVC建議我們避免這樣訪問;模型應(yīng)該是完全獨(dú)立與UI的,它絕對(duì)不能同視圖這一塊中的對(duì)象進(jìn)行溝通;同時(shí)UI對(duì)象應(yīng)該是通用的,它們無法同任何特定的模型進(jìn)行通信,它們需要控制器來為它們解釋模型;

  • 視圖訪問控制器:因?yàn)橐晥D對(duì)象是通用的,它們不能對(duì)控制器知道得太多;視圖只能以一種”盲“的方式同控制器進(jìn)行通信,它們不應(yīng)知道控制器的類;這里需要結(jié)構(gòu)化的通信方式:一種叫做目標(biāo)動(dòng)作,控制器在自己身上設(shè)置一個(gè)目標(biāo),它會(huì)提供一個(gè)動(dòng)作給視圖,當(dāng)有人觸發(fā)了視圖的特定事件,則發(fā)送該動(dòng)作給控制器;還有更多復(fù)雜的情況,譬如視圖發(fā)生了will、should、did等事件,這些事件視圖自身沒有足夠的邏輯去處理,需要將這些復(fù)雜事件委托給控制器去完成,即委托協(xié)議(協(xié)議是一種同另一對(duì)象進(jìn)行通信的盲方式);最后是數(shù)據(jù)源,因?yàn)橐晥D不應(yīng)該擁有其所顯示的數(shù)據(jù),它只在自身開辟出供顯示數(shù)據(jù)所需要的空間,但它并不關(guān)心這些數(shù)據(jù)究竟是什么;

  • 模型訪問控制器:這同樣是不允許的,但有時(shí)候模型中的事物會(huì)變化,控制器需要知道它,這種通信如何做到呢?這可以通過一種電臺(tái)的概念來理解,模型會(huì)將自身發(fā)生變化的消息廣播出去,任何對(duì)其感興趣的對(duì)象都可以收到,iOS將這種機(jī)制叫做通知(Notification)和鍵值觀察(KVO);

MVC架構(gòu)之間可以進(jìn)行組合,通過這種組合實(shí)現(xiàn)更大、更復(fù)雜的APP;




發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 昭觉县| 偃师市| 邹平县| 固镇县| 塘沽区| 许昌市| 长宁县| 军事| 和政县| 新沂市| 锡林浩特市| 桦南县| 上饶市| 阳信县| 吐鲁番市| 盐边县| 武义县| 伊金霍洛旗| 睢宁县| 佛冈县| 嘉善县| 田阳县| 宜兰市| 海安县| 淅川县| 蒙山县| 云安县| 堆龙德庆县| 沛县| 阿合奇县| 临洮县| 潼南县| 长沙市| 当雄县| 九龙坡区| 邻水| 河北区| 阳泉市| 商都县| 辽宁省| 衢州市|