Stanford iOS7 Lesson One

斯坦福的iOS7公開課,在網(wǎng)易公開課上學(xué)習(xí)這門課时鸵,一共18集胶逢,希望每天我能在這里記錄下我的學(xué)習(xí)步伐,記錄學(xué)習(xí)心得。

如有不當(dāng)之處宪塔。請指點我這個小渣渣磁奖。

/* 這是一段注釋 好久沒寫了,又回顧一遍某筐,寫寫心得體會比搭。*/

How to build cool apps

第一節(jié)課由白胡子老頭講解如何構(gòu)建一個應(yīng)用
講解斯坦福學(xué)習(xí)這們課程的一些必要條件,(不得不佩服國外的學(xué)校南誊,學(xué)習(xí)開發(fā)的需要一些基礎(chǔ)課程身诺,反觀我天朝,培訓(xùn)機(jī)構(gòu)抄囚,學(xué)校霉赡,任何人都可以從零學(xué)習(xí)開發(fā))這是好是壞呢
每周還有作業(yè) 。幔托。通過概念將例子穴亏,學(xué)生們都是通過概念來做,我們學(xué)會的只是如何百度重挑。嗓化。。谬哀。
好 了刺覆, 廢話不多說。Let's GO!
不過不論名牌大學(xué)還是野雞學(xué)校史煎,老師只是引路人谦屑,剩下的還是要多多的靠自己。
雖然有中英文字幕篇梭,但有些概念還是要注意下英文字幕

1.what is in ios?

iOS中有什么氢橙,簡而言之,iOS系統(tǒng)由什么組成很洋,有什么樣的組織架構(gòu)充蓝?

何為框架 framework?
框架是一個目錄喉磁,里邊包含.h文件和資源文件構(gòu)成了framework,framework即是動態(tài)庫也是靜態(tài)庫官脓,在iOS中协怒,系統(tǒng)的framework是動態(tài)庫,自己創(chuàng)建的是靜態(tài)庫卑笨,有關(guān)靜態(tài)庫和動態(tài)庫孕暇,可以看我其它文章詳解。每個框架對應(yīng)iOS系統(tǒng)的每一層,每層建立在它下層的上面妖滔,盡量使用上層框架代替下層框架隧哮,更高層次的框架是對底層框架對象的抽象。


Cocoa Touch 觸控應(yīng)用層 也是UI層 桦沉, 如UIKit對應(yīng)這個層措左,是開發(fā)者接觸最多的一個層秕磷。Cocoa touch 是 Cocoa的觸控版本

Cocoa Touch

Media 媒體層 一些影音高級自定義處理 應(yīng)用這個層比較多。

Media

Core Serivce 核心操作系統(tǒng)層

Core Services

Core OS 接近硬件采蚀,基于BSD 的Unix系統(tǒng) ,大多數(shù)API 都是用c寫的

Core OS

2. Platform Components 基礎(chǔ)知識

  • Tools xcode5(現(xiàn)在我的用版本是7.2)
  • Language Objective-c
  • Frameworks Foundation UIKit CoreData CoreMotion MapKit

3. Design Strategies 設(shè)計模式 MVC設(shè)計模式

設(shè)計模式簡單說承二,就是將工程中所用到的類合理組織與使用的策略榆鼠;
合理分配歸納到下邊這三個模塊中
M model 視圖所需要的數(shù)據(jù),e.g label上的文字

V View 構(gòu)建視圖的類亥鸠,e.g button, switch ,label...

C Controller 連接視圖與模型的類妆够,二者的媒介,e.g c將label需要的數(shù)據(jù)從m取出來负蚊,填充到label上神妹,將label顯示出來;

MVC三者如何通信盖桥?

view和model 嚴(yán)禁相互通信灾螃,必須相互獨立。
模型完全獨立于UI揩徊,不能同視圖這一塊中的對象進(jìn)行溝通


控制器到視圖的通信方式 腰鬼,控制器完全知道視圖的行為,將視圖作為控制器的一個屬性 e.g outlet

//聲明了button的輸出口塑荒,可以設(shè)置它指向xib中任何的Button熄赡,通過button可以知道所有的相關(guān)屬性和行為;
@property  (nonatomic,retain)    IBOutlet UIButton    *button;

視圖到控制器通信方式

  • 目標(biāo)動作機(jī)制 taget-action 這是一種 “盲”的方式齿税,視圖是通用的彼硫,出發(fā)視圖的行為來通知控制器;控制器本身有一個目標(biāo)方法(target)凌箕,然后將這個目標(biāo)給視圖的行為方法(action),當(dāng)視圖中觸發(fā)這個行為時拧篮,視圖會發(fā)送消息給控制器的目標(biāo)告訴控制器有人對他進(jìn)行了操作。比如按鈕的點擊事件牵舱、滑動條的滑動事件串绩。e.g 點擊按鈕 通知控制器來執(zhí)行一些事情,如頁面跳轉(zhuǎn)和網(wǎng)絡(luò)請求芜壁,刷新UI等礁凡;

*委托機(jī)制 delegate 將一些視圖不能自己處理完成的事情委托交給控制器來處理高氮,因為控制器說全局的掌控者,e.g 滾動視圖問控制器顷牌,我可以滾動嗎剪芍?should 是否可以滾動, will 將要窟蓝,did 已經(jīng) 等罪裹,這一些狀態(tài)由控制器告訴滾動視圖;視圖本身回答不了這些問題疗锐, 把這些問題交給其他對象坊谁,不知道這個對象,只知道這個對象可以回答這些問題滑臊;

*數(shù)據(jù)源機(jī)制 data source 視圖讓控制器給它將要顯示的數(shù)據(jù)口芍,有待深入研究!
視圖不該持有它的數(shù)據(jù)雇卷,數(shù)據(jù)源應(yīng)該在模型中鬓椭,與UI無關(guān)~


.模型到控制器的通信方式

  • KVO 鍵值觀擦
    與通知一樣,在控制器中注冊成為觀察者关划,實現(xiàn)回調(diào)方法小染,在模型發(fā)生改變的時候可以通過激活回調(diào)方法讓控制器做出一些動作。
  • Notification 通知

模型數(shù)據(jù)改變了贮折,廣播信息裤翩,控制器接受,调榄,類似于電臺

現(xiàn)在的我已經(jīng)在做iOS開發(fā)2個月了踊赠,還屬于提升階段。今天的第一課每庆,白胡子老頭講了一些基本的語法筐带,比如屬性的使用,定義方法缤灵,等伦籍。

//一般來說,控制器中會注冊成為監(jiān)聽者
- (void)addObserver:(id)observer selector:(SEL)aSelector name:

//當(dāng)模型中的值發(fā)生改變時腮出,模型會發(fā)出通知
- (void)postNotification:(NSNotification *)notification;

- (void)postNotificationName:(NSString *)aName object:(id)anObject;


一些零散的知識

.h public API
.m private API 以及所有實現(xiàn)

內(nèi)存管理
屬性的修飾符帖鸦,相當(dāng)于一些代碼的開關(guān),
不一樣的修飾符胚嘲,屬性的getter和setter方法的內(nèi)容也不一樣富蓄;
strong 和 weak
我對內(nèi)存的一些見解 舉個例子??

@property (nonatomic,strong) NSObject *obj;

// like as
obj = [[NSObject alloc] init];

//obj 是一個指針, 它 指著 [[NSObject alloc] init]分配的這塊對象; 這個對象慢逾, 一般我們說obj是一個對象立倍, 這個說法并不完全準(zhǔn)確。 希望大家搞清楚對象 與指針 obj 這個指針是在內(nèi)存空間中棧內(nèi)存在的侣滩, 它的值存著堆內(nèi)對象的地址 [[NSObject alloc] init]; 也就是這個口注。

這個是 __ obj __ 是一個指針,被strong修飾君珠, 只要有被strong修飾的指針指著這個對象寝志, 這個對象的引用計數(shù)就不會為0,也就不會被釋放策添。 stong是可以修改引用計數(shù)的一個關(guān)鍵詞材部。

weak 被這個修飾詞所修飾,當(dāng)對象沒有強(qiáng)引用時唯竹,釋放內(nèi)存并會自動置為nil乐导;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市浸颓,隨后出現(xiàn)的幾起案子物臂,更是在濱河造成了極大的恐慌,老刑警劉巖产上,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棵磷,死亡現(xiàn)場離奇詭異,居然都是意外死亡晋涣,警方通過查閱死者的電腦和手機(jī)仪媒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谢鹊,“玉大人算吩,你說我怎么就攤上這事∑埠兀” “怎么了赌莺?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長松嘶。 經(jīng)常有香客問我艘狭,道長,這世上最難降的妖魔是什么翠订? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任巢音,我火速辦了婚禮,結(jié)果婚禮上尽超,老公的妹妹穿的比我還像新娘官撼。我一直安慰自己,他們只是感情好似谁,可當(dāng)我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布傲绣。 她就那樣靜靜地躺著掠哥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪秃诵。 梳的紋絲不亂的頭發(fā)上续搀,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天,我揣著相機(jī)與錄音菠净,去河邊找鬼禁舷。 笑死,一個胖子當(dāng)著我的面吹牛毅往,可吹牛的內(nèi)容都是我干的牵咙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼攀唯,長吁一口氣:“原來是場噩夢啊……” “哼洁桌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起革答,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤战坤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后残拐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體途茫,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年溪食,在試婚紗的時候發(fā)現(xiàn)自己被綠了囊卜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡错沃,死狀恐怖栅组,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情枢析,我是刑警寧澤玉掸,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站醒叁,受9級特大地震影響司浪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜把沼,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一啊易、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧饮睬,春花似錦租谈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窟却。三九已至,卻和暖如春劫拗,著一層夾襖步出監(jiān)牢的瞬間间校,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工页慷, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胁附。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓酒繁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親控妻。 傳聞我的和親對象是個殘疾皇子州袒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,678評論 2 354

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