理論篇:
1.網(wǎng)絡(luò)(Http、TCP/UDP、XMPP宣增、Socket等)
http://www.reibang.com/p/ef5f0bb773c8
http://www.reibang.com/p/3a4223d33fdf
2.iOS app性能優(yōu)化
可以參考:
iOS最全性能優(yōu)化(上)http://www.reibang.com/p/9c450e512020
iOS最全性能優(yōu)化(中)http://www.reibang.com/p/ad90e90dce4f
iOS最全性能優(yōu)化(下)[http://www.reibang.com/p/25e2f1ae51d2]
3.數(shù)據(jù)存儲方式薄嫡、情景(沙盒幾種方式、point:FMDB(SQLite))
(1)沙盒結(jié)構(gòu):
1尸曼、Application:存放程序源文件,上架前經(jīng)過數(shù)字簽名萄焦,上架后不可修改
2控轿、Documents: 保存應(yīng)?運行時生成的需要持久化的數(shù)據(jù),iTunes同步設(shè)備時會備份該目錄冤竹。例如,游戲應(yīng)用可將游戲存檔保存在該目錄
3、tmp: 保存應(yīng)?運行時所需的臨時數(shù)據(jù),使?完畢后再將相應(yīng)的文件從該目錄刪除茬射。應(yīng)用沒有運行時,系統(tǒng)也可能會清除該目錄下的文件鹦蠕。iTunes同步設(shè)備時 不會備份該目錄
4、Library/Caches: 保存應(yīng)用運行時?成的需要持久化的數(shù)據(jù),iTunes同步設(shè)備時不會備份該目錄在抛。?般存儲體積大钟病、不需要備份的非重要數(shù)據(jù),比如網(wǎng)絡(luò)數(shù)據(jù)緩存存儲到Caches下
5刚梭、Library/Preference: 保存應(yīng)用的所有偏好設(shè)置肠阱,如iOS的Settings(設(shè)置) 應(yīng)?會在該目錄中查找應(yīng)?的設(shè)置信息。iTunes同步設(shè)備時會備份該目錄
(2)存儲方式:
1望浩、plist屬性列表存儲(如NSUserDefaults)
2辖所、文件存儲(如二進制數(shù)據(jù)寫入文件存儲,通過NSFileManager來操作將下載起來的二進制數(shù)據(jù)寫一篇文件中存儲)
3磨德、NSKeydeArchiver歸檔存儲缘回,常見的是自動化歸檔/解檔處理,想要學習如何通過runtime實現(xiàn)自動化歸檔/解檔典挑,可以閱讀文章:[學習通過runtime實現(xiàn)自動化歸檔/解檔](http://www.huangyibiao.com/runtime-archive-unarchive-automaticly/)
4酥宴、數(shù)據(jù)庫SQLite3存儲(如FMDB、Core Data)
FMDB使用:http://www.reibang.com/p/624e58eadc74
4.說說各種設(shè)計模式(觀察者模式您觉、代理模式拙寡、工廠模式、單例模式琳水、MVC等)(Block肆糕、代理、通知在孝、KVO/KVC:http://www.reibang.com/p/229134db2c4b)
5.RunTime诚啃、RunLoop
問題:RunLoop: RunLoop是什么,與主線程和子線程關(guān)系私沮、4中mode作用始赎、與NSTimer關(guān)系。
5.1.RunLoop是什么:
loop表示某種循環(huán)仔燕,和run放在一起就表示一直在運行著的循環(huán)造垛。實際上,run loop和線程是緊密相連的晰搀,可以這樣說run loop是為了線程而生五辽,沒有線程,它就沒有存在的必要外恕。Run loop是線程的基礎(chǔ)架構(gòu)部分奔脐, Cocoa 和 CoreFundation都提供了方便配置和管理線程的 run loop (以下都以 Cocoa 為例)俄周。每個線程,包括程序的主線程都有與之相應(yīng)的run loop髓迎。
5.2.與主線程和子線程關(guān)系:
主線程的run loop默認是啟動的。
對非主線程來說建丧,run loop默認是沒有啟動的排龄,確切地說,當沒有訪問過非主線程的run loop時翎朱,run loop是不存在的橄维,因為這是一種懶加載。如果你需要做更多的線程交互則可以手動配置和啟動拴曲,如果線程只是去執(zhí)行一個長時間的已確定的任務(wù)則不需要争舞。
5.3、4中mode作用:
6.多線程
8.各種關(guān)鍵字的使用
把屬性分為四類:
1澈灼、原子性:nonatomic聲明為非原子操作竞川,atomic聲明為原子操作。
2叁熔、讀/寫權(quán)限:readwrite(讀寫)委乌、readonly (只讀)
3、內(nèi)存管理相關(guān):assign荣回、strong遭贸、 weak、unsafe_unretained心软、copy
4壕吹、方法名:getter= 、setter=set删铃。getter=的樣式:@property (nonatomic, getter=isOn) BOOL on;
5耳贬、不常用的:nonnull、null_resettable泳姐、nullable
ARC下默認關(guān)鍵字:
對于基本數(shù)據(jù)類型默認關(guān)鍵字是:atomic,readwrite,assign
對于普通的Objective-C對象:atomic,readwrite,strong
assign vs weak, __block vs __weak:
1效拭、assign適用于基本數(shù)據(jù)類型,weak是適用于NSObject對象胖秒,并且是一個弱引用缎患。 assign其實也可以用來修飾對象,那么我們?yōu)槭裁床挥盟匮指危恳驗楸籥ssign修飾的對象在釋放之后挤渔,指針的地址還是存在的,也就是說指針并沒有被置為nil风题。如果在后續(xù)的內(nèi)存分配中判导,剛好分到了這塊地址嫉父,程序就會崩潰掉。
2眼刃、而weak修飾的對象在釋放之后绕辖,指針地址會被置為nil。所以現(xiàn)在一般弱引用就是用weak擂红。
3仪际、首先__block是用來修飾一個變量,這個變量就可以在block中被修改(參考block實現(xiàn)原理) __block:使用__block修飾的變量在block代碼快中會被retain(ARC下昵骤,MRC下不會retain) __weak:使用__weak修飾的變量不會在block代碼塊中被retain 同時树碱,在ARC下,要避免block出現(xiàn)循環(huán)引用 __weak typedof(self)weakSelf = self;
9.對常用框架的原理與使用(AFN变秦、RAC成榜、React Native等)
10.其他重要問題:
參考---標哥技術(shù)博客:http://www.huangyibiao.com/archives/348
實踐篇:
1.推送通知、即時通信蹦玫、視頻音頻赎婚、分享與第三方登錄、支付钳垮、動畫效果惑淳、地圖、藍牙饺窿、
2.直播技術(shù)歧焦、與web前端交互、跨平臺開發(fā)肚医、RAC使用绢馍、
3.項目開發(fā)中遇到過什么印象深刻的坑,上架要注意的點
- 重溫篇:
手生的時候肠套,敲一個項目就好了