我準(zhǔn)備出一系列的學(xué)習(xí)體系, 從秘籍(入門)->內(nèi)功(修煉)->心法(融合)->大成(擁有自己的學(xué)習(xí)方法)
如何建立iOS學(xué)習(xí)體系之秘籍篇(純干貨)
如果大家需要可以評(píng)論或者私信我,我會(huì)將我文章中分享的圖書 pdf硬纤、epub解滓、mobi 版本共享給大家!
做開發(fā)就像小說一樣需要修煉內(nèi)在的東西, 它將會(huì)讓你更加懂得如何走向一個(gè)更大的舞臺(tái), 這篇 內(nèi)功篇 主要將以下幾個(gè)內(nèi)容 :
- 當(dāng)你已經(jīng)入門iOS后, 應(yīng)該通過幾種形式來提高自己的基礎(chǔ)能力
- 學(xué)會(huì)使用他人的框架, 并且從中吸取你需要的知識(shí)
- 融會(huì)貫通, 在自己編碼時(shí)適當(dāng)?shù)氖褂靡恍┰O(shè)計(jì)模式
- 多練筝家、多學(xué)洼裤、多分享
下面我將這幾個(gè)大點(diǎn)逐一拆分進(jìn)行細(xì)致的講解 ... ...
1. 當(dāng)你已經(jīng)入門iOS后, 應(yīng)該通過幾種形式來提高自己的基礎(chǔ)能力
當(dāng)看到這里的時(shí)候, 相信你已經(jīng)擁有了編寫基礎(chǔ)部分的能力, 那么基礎(chǔ)部分指的是什么呢?
- @property 是什么?它會(huì)自動(dòng)生成什么肛鹏?不同的參數(shù)/屬性 代表著什么意思逸邦?使用場(chǎng)景是什么?
- UITableView , UICollectionView 在使用的時(shí)候, 不同的自定義cell在扰、item是否應(yīng)用熟練,缕减?
- Autolayout是否熟練?
- MVC是否理解芒珠?其他的理解嗎桥狡?例如: MVVM , MVP
- 網(wǎng)絡(luò)層有了解嗎? NSURLSession有什么優(yōu)點(diǎn)嗎皱卓?為什么使用HTTPS?
- AFN, SDWebImage 這兩個(gè)剛剛接觸的框架, 他們的基本運(yùn)行原理你了解嗎裹芝?
- CGContextRef 了解嗎?
- CABasicAnimation 了解嗎娜汁?
- 列表控件多時(shí)為什么會(huì)卡嫂易?能優(yōu)化嗎?怎么優(yōu)化掐禁?
- 為什么棄用UIWebView怜械?它有什么問題?用什么替代傅事?
- pthread缕允、NSLock 用過嗎?使用有什么注意的地方嗎蹭越?
- copy, mutableCopy 有什么區(qū)別嗎障本?
- CGD, NSThread 用過嗎?有什么區(qū)別嗎?NSRunLoop知道嗎驾霜? 它與線程的關(guān)系知道嗎案训?
- 內(nèi)存管理知道嗎?ARC是如何進(jìn)行內(nèi)存布局的粪糙?怎么做到的自動(dòng)釋放萤衰?@autoreleasepool 用過嗎?它是做什么的猜旬?
- Delegate脆栋、NSNotification、KVO洒擦、KVC椿争、Block都知道嗎?它們是做什么的熟嫩?什么場(chǎng)景使用秦踪?
- 一切皆對(duì)象你同意嗎?
- Runtime 你用過嗎掸茅? (基本的使用也可以) OC是動(dòng)態(tài)語言你同意嗎椅邓?
- OC 有多繼承嗎?Category昧狮?
- 沙盒知道嗎景馁?用來干什么的?有幾個(gè)文件逗鸣?分別什么作用合住?
- 了解過最新的流行框架嗎?WWDC撒璧?
- 怎么看源碼知道嗎透葛?蘋果開發(fā)了一些源碼?
- Block為什么會(huì)循環(huán)引用卿樱? __block 修飾后為什么可以在block中使用僚害?block 為什么要用copy修飾?
... ...
相信你看到這里基本已經(jīng)對(duì)現(xiàn)有的市場(chǎng)以及作者有所質(zhì)疑繁调。 老子剛學(xué)iOS,你就要求會(huì)這會(huì)那的萨蚕!
其實(shí)不然, 正因?yàn)槲沂翘钸^坑, 所以才不想讓你們的學(xué)習(xí)之路漫漫, 這些都是一些基本的問題, 說出來說明你關(guān)注的問題比較深入, 說不出來也沒關(guān)系, 你知道了自己當(dāng)前的問題, 以及努力的方向, 相信總有一天, 回過頭來看這些問題, 對(duì)你來說, 不值一提. 瞬間秒殺
相信大部分問題的答案你都可以baidu, google出來.如果有需求,我可以自問自答,再整理一篇答案.
2.學(xué)會(huì)使用他人的框架, 并且從中吸取你需要的知識(shí)
就以上面我們說過的AFNetworking舉例說明(也可以說是Alamofire):
AFN 基本結(jié)構(gòu):
AFNetWorking , 頭文件, 引入所有需要的類. 通過引入它, 你可以獲取AFN的所有功能.
AFURLSessionManager 核心類, 通過它來實(shí)現(xiàn)大部分網(wǎng)絡(luò)相關(guān)功能
AFHTTPSessionManager 作為AFURLSessionManager的子類, 實(shí)現(xiàn)請(qǐng)求優(yōu)化處理.
AFURLRequestSerialization 請(qǐng)求處理, 編解碼、優(yōu)化涉馁、拼接請(qǐng)求等.
AFURLResponseSerialization 響應(yīng)處理门岔,序列化爱致、回調(diào)分發(fā)烤送、數(shù)據(jù)處理等.
AFSecurityPolicy 請(qǐng)求認(rèn)證
AFNetworkReachabilityManager 監(jiān)聽網(wǎng)絡(luò)請(qǐng)求狀態(tài)變化
值得借鑒的地方:
- 使用NSRunloop 默認(rèn)在后臺(tái)保持一條線程,監(jiān)聽用戶狀態(tài)變化糠悯,不需要時(shí)休眠帮坚,需要時(shí)喚醒妻往。不需要每次都創(chuàng)建新線程來浪費(fèi)手機(jī)空間
- dispatch_semaphore_t 控制對(duì)異步處理返回結(jié)果的控制,避免線程之間出現(xiàn)資源競(jìng)爭(zhēng)問題
- 代碼思路清晰试和,結(jié)構(gòu)明確
- 支持多種格式的解析, 流行的多為json和xml
- 安全方面也給出了很多的對(duì)應(yīng)接口, 而且調(diào)用方便明了
... ...
再舉個(gè)栗子
ReactiveCocoa 函數(shù)響應(yīng)式編程
那么什么是函數(shù)響應(yīng)式編程讯泣?
我的理解是:當(dāng)一個(gè)事件發(fā)生時(shí),你需要對(duì)其進(jìn)行監(jiān)聽并作出相應(yīng)的處理阅悍,這里 傳輸這個(gè)事件的橋梁就稱為 函數(shù)響應(yīng)式編程
具體的例子:比如你要監(jiān)聽ScrollView的滾動(dòng)好渠,或者按鈕點(diǎn)擊的action,或者View根據(jù)Model的變化動(dòng)態(tài) 节视。 這一系列的東西都可以使用RAC作為實(shí)現(xiàn)拳锚,它提出了一個(gè)不一樣的編程角度!
MVVM框架的交互就可以使用RAC來搭建橋梁寻行。
這里只是進(jìn)行一個(gè)簡(jiǎn)單的介紹霍掺,RAC方面的話還需要下功夫去學(xué)習(xí)一下,有興趣的同學(xué)可以follow我拌蜘,我以后會(huì)出相關(guān)使用的教程等杆烁。
3.融會(huì)貫通, 在自己編碼時(shí)適當(dāng)?shù)氖褂靡恍┰O(shè)計(jì)模式
其實(shí)關(guān)于設(shè)計(jì)模式部分還是有很多需要聊得,這里簡(jiǎn)單對(duì)其進(jìn)行一個(gè)介紹
什么是設(shè)計(jì)模式简卧?
我的理解來看兔魂,它是為了各個(gè)場(chǎng)景而生,在各種不同情況下举娩,要怎么解決問題的一種方案入热!如我們老生常談的面向?qū)ο?/strong>就是設(shè)計(jì)模式的一種,常類別或者對(duì)象來描述
那么這里我推薦給大家一本入門的書晓铆,大話設(shè)計(jì)模式勺良,很適合新手看,中級(jí)也可以查漏補(bǔ)缺骄噪,就是這本尚困。
我有它的pdf版本,會(huì)在網(wǎng)盤中共享出來链蕊。
這里還有幾本設(shè)計(jì)模式事甜、技能擴(kuò)展相關(guān)的文章以及圖書,大家可以借鑒一下
4. 多練滔韵、多學(xué)逻谦、多分享
當(dāng)你看過一些優(yōu)秀的框架之后,一定要試著融匯到自己的項(xiàng)目中去使用陪蜻,這樣做才能加深記憶邦马,還可以更好的去理解其原理及為什么這么做
無論在工作還是平時(shí),一定要多于他人溝通自己的想法,分享自己的心得滋将,總結(jié)自己技巧邻悬、想法。
我在這里強(qiáng)烈推薦大家開始寫博客随闽,當(dāng)做筆記也好父丰,寫著玩當(dāng)日記也罷,寫什么都可以掘宪,最主要的是邁開第一步蛾扇,相信以后的路會(huì)有很多條供你選擇。
一定要經(jīng)常進(jìn)行總結(jié)魏滚,將平時(shí)的Bug屁桑、Category、Views栏赴、Animations 等 統(tǒng)統(tǒng)總結(jié)起來蘑斧,可以揉到一起、也可以放到github上與大家分享自己的小Demo须眷。
也可以搭建自己的博客竖瘾,不需要購買域名,通過 github + hexo 就可以輕松的擁有自己的網(wǎng)頁花颗,你可以在上面隨心所欲捕传。
這是我總結(jié)經(jīng)驗(yàn)的第二篇文章,總共四篇扩劝,希望可以幫助到你庸论!