Swift 學(xué)習(xí)筆記 Lecture 1. Introduction to iOS 11 , Xcode 9 and Swift 4

傳送門: 斯坦福CS193P課程 Ready烟瞧!Go诗鸭!

推薦斯坦福課程,筆記隨課程更新参滴,本篇和下一篇是已經(jīng)寫下來的强岸,從Apple備忘錄移過來,格式和數(shù)據(jù)展現(xiàn)的并不完整和整齊砾赔,因?yàn)槭枪P記蝌箍,就不花時(shí)間改展現(xiàn)了。

什么是iOS暴心?iOS系統(tǒng)層次

Cocoa Touch: Multi-Touch十绑,Alert,Core Motion酷勺,WebKit本橙,MapKit,Camera脆诉,Views等等甚亭,UI層提供展現(xiàn)所需控件和用戶互動(dòng)

Media:Core Audio,OpenAL击胜,JPEG/PNG/TIFF/PDF亏狰,Core Animation,Audio Recording偶摔,Video Playback暇唾,Quartz(2D)等等 ,提供媒體辰斋,視頻策州,音頻服務(wù)

Core Services:Collections ,Core Location宫仗,Address Book够挂, Net services, Networking藕夫, Threading孽糖,F(xiàn)ile Access, SQLite 毅贮,URL Utilities办悟, Preferences,Threading等等滩褥,提供核心服務(wù)

Core OS: OSX Kernel , BSD , Power management, Keychain Access, Security, Bonjour 等等病蛉,iOS基于Unix,底層C語言實(shí)現(xiàn)。

以上分層并不是很詳細(xì)铡恕,但其實(shí)我們沒必要糾結(jié)這些問題,一般情況這些層次里的Kit使用才是需要關(guān)注的重點(diǎn)丢间。

Swift語言特性:

Swift是一種強(qiáng)類型語言探熔,為了向后兼容Objective-C,Swift引入了一種untyped無類型

Swift中使用變量時(shí)需要正確的定義和區(qū)分類型烘挫,不同類型之間需要進(jìn)行類型轉(zhuǎn)換

實(shí)際使用過程中Swift表現(xiàn)出弱類型語言特性诀艰,是因?yàn)镾wift是一種強(qiáng)類型“推斷”語言,它可以猜出具體類型饮六,當(dāng)然也可以在定義時(shí)指定變量類型

Swift永遠(yuǎn)不會自動(dòng)進(jìn)行類型轉(zhuǎn)換

技巧:

使用mac鍵盤上按住option按鈕其垄,或在普通鍵盤上按住alt,將鼠標(biāo)移動(dòng)至變量定義上即可看到swift已經(jīng)猜出了正確的變量類型

擴(kuò)展知識:

Python是弱類型區(qū)分語言卤橄,JavaScript是弱類型區(qū)分語言绿满,Java是強(qiáng)類型區(qū)分語言,Objective-C是強(qiáng)類型區(qū)分語言

類變量窟扑,常量定義:

Swift中使用 var 定義變量喇颁,let 定義常量

Swift類中定義變量需要初始化,否則會報(bào)錯(cuò)無法編譯

Swift中初始化有兩種方法嚎货,一種是在init中進(jìn)行初始化橘霎,一種是直接在變量定義后直接=初始化值

Swift是強(qiáng)類型推斷語言,所以在定義變量時(shí)無需顯式定義數(shù)據(jù)類型

Swift時(shí)強(qiáng)類型推斷語言殖属,所以在定義數(shù)組時(shí)顯式定義數(shù)組類型時(shí)需要指定數(shù)據(jù)類型

變量后使用 ! 符號結(jié)尾則變量不需要初始化也不會編譯報(bào)錯(cuò)

技巧:

StoryBoard中鏈接對象和方法:

1.在StoryBoard中選擇需要鏈接的對象

2.按住鍵盤Ctrl+鼠標(biāo)左鍵拖拽到Swift代碼中

3.選擇Outlet或Action姐叁,如果需要?jiǎng)?chuàng)建數(shù)組則選擇Outlet Colloction

Swift中outlet變量一旦被創(chuàng)建,單改代碼(刪減變量單詞)會造成與UI鏈接丟失洗显,解決辦法是按住Common(Win鍵盤按windows圖標(biāo)鍵)+左鍵下拉菜單中選擇rename

擴(kuò)展知識:

Swift中l(wèi)et定義常量外潜,Java中const定義常量

實(shí)驗(yàn)代碼:

varemojis : Array = ["??","??","??","??","??","??"]

等價(jià)于

varemojis = ["??","??","??","??","??","??"]

但顯式定義Array時(shí)需要指定<數(shù)據(jù)類型>

觀察者模式

KVO,Key-Value Observer 觀察者模式挠唆,觀察者模式可以幫我們實(shí)現(xiàn)變量改變UI跟著變

實(shí)驗(yàn)代碼:

這里定義了flipCount變量記錄數(shù)字橡卤,當(dāng)變量改變時(shí)設(shè)置UI中l(wèi)abel里的數(shù)字

varfCount = 0{

? ? ? ? didSet{

? ? ? ? ? ? label.text = “Count : \(fCount)"

? ? ? ? }

}

擴(kuò)展知識:

觀察者模式的應(yīng)用非常廣泛,MVVM中監(jiān)聽模型變更UI等等损搬,Java中使用Interface實(shí)現(xiàn)Listener碧库。除了觀察者模式外還有很多其他模式,比如MVC巧勤,和其變種MVVM嵌灰。J2ee中常用的工廠模式,Objective-C代理(Delegate)模式颅悉,Android里常用的適配器Adapter模式

字符串拼接

Swift中使用 \(變量) 拼接字符串和變量沽瞭,不像Objective-C需要指定數(shù)據(jù)類型 %ld %s %lld %@ 等等

實(shí)驗(yàn)代碼

let fCount = 255

print(“Count = \(fCount)”)

方法定義

Swift 中形參定義 外部調(diào)用形參名 內(nèi)部調(diào)用形參名 : 數(shù)據(jù)類型 -> 返回值類型

形參第一個(gè)外部調(diào)用參數(shù)名可以是 _ 這樣就類似Objective-C的定義

因?yàn)樵贠bjective-C 中沒有外部形參名 參數(shù)定義為 :(數(shù)據(jù)類型) 參數(shù)名

由此可見Swift的可讀性更強(qiáng) 可讀性意味著高可維護(hù)性和協(xié)作性


下一篇:Swift 學(xué)習(xí)筆記 Lecture 2. Model - View - Controller

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市剩瓶,隨后出現(xiàn)的幾起案子驹溃,更是在濱河造成了極大的恐慌城丧,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豌鹤,死亡現(xiàn)場離奇詭異亡哄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)布疙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門蚊惯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人灵临,你說我怎么就攤上這事截型。” “怎么了儒溉?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵宦焦,是天一觀的道長。 經(jīng)常有香客問我顿涣,道長赶诊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任园骆,我火速辦了婚禮舔痪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锌唾。我一直安慰自己锄码,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布晌涕。 她就那樣靜靜地躺著滋捶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪余黎。 梳的紋絲不亂的頭發(fā)上重窟,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機(jī)與錄音惧财,去河邊找鬼巡扇。 笑死,一個(gè)胖子當(dāng)著我的面吹牛垮衷,可吹牛的內(nèi)容都是我干的厅翔。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼搀突,長吁一口氣:“原來是場噩夢啊……” “哼刀闷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤甸昏,失蹤者是張志新(化名)和其女友劉穎顽分,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體施蜜,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卒蘸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了花墩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悬秉。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡澄步,死狀恐怖冰蘑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情村缸,我是刑警寧澤祠肥,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站梯皿,受9級特大地震影響仇箱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜东羹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一剂桥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧属提,春花似錦权逗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至恕酸,卻和暖如春堪滨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蕊温。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工袱箱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人义矛。 一個(gè)月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓犯眠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親症革。 傳聞我的和親對象是個(gè)殘疾皇子筐咧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345