iOS 知識清單總結
2017年7月24日 周一
一、oc基礎
1、oc特點;
2、分類與繼承(或說擴展)的區別;
3、內存管理機制、內存泄露、野指針,如何避免,崩潰問題;
4、關鍵字:assign、retain、weak、strong、copy、@property本質、@synthesize、@dynamic;
5、block、block內存管理,棧和堆的區別;
6、runtime機制;
7、常用數據類型(基本數據類型、結構體、枚舉、字符串、數組、字典、數據、日期);
8、常用設計模式(mvc、單例、觀察者、代理)、懶加載;
9、數據傳遞方式(賦值、方法調用、代理、通知、block、get方法、set方法);
內存泄露出現:
1、block強引用對象,循環引用;
2、聲明成員變量時使用了不合理的關鍵字,如本來要weak卻使用strong;
崩潰問題:實際多數出于野指針;
10、swift語言;
11、常用框架:mjExtension、yykit、yymodel、jsonmodel;
二、UI
1、常用的控件:UILabel、UIButton、UIView、UITableView、。。。。;
2、layout、storyboard、xib;
3、動畫;
4、手寫代碼;
5、frame和bounds的區別;
6、常用相關框架:masonry、mjrefresh、mbprogressHUD;
三、多線程
1、NSThread、GCD、NSOpreation的區別;
2、線程、進程;
UI的更新要在主線程執行:
dispatch_async(dispatch_get_main_queue(),^(void){});
四、數據操作
1、字符串:拼接、分割、計算size;
2、數組:添加、刪除、篩選、排序;
3、文件存儲到本地;
4、圖片操作;
5、日期操作;
6、常用數據存儲方式:
1)歸檔;
2)plist+NSUserDefault;
3)sqlite3;
4)coreData;
5)realm;
6)keychain;
7、sql語句操作:
1)添加表;
2)增刪改查操作;
3)字段操作;
8、謂詞NSPredicate;
9、常用框架:FMDB、realm;
五、網絡
1、socket通信;
2、http和https、tcp、udp;
3、網絡編程、get、post請求;
4、網絡數據交互:json、xml;
5、常用框架:AFNetWorking、alamofire;
六、機制
1、內存管理機制;
2、runtime機制;
3、緩存機制;
4、tableViewCell重用機制(visibleTableCells、reuserbleTableCells);
5、SDWebImage緩存機制;
6、沙盒機制;
7、runloop機制;
七、流程
1、開發流程;
2、APP運行流程;
3、控制器生命周期;
4、APP上架流程、審核規則;
5、支付寶流程;
6、推送通知流程(push--APNS--iPhone--APP,個推、極光推送、百度推送、騰訊信鴿);
7、第三方登錄:微信、QQ、微博、百度;
八、項目開發
1、項目管理(git)、cocoapods;
2、屏幕適配;
3、性能優化;
4、xcode開發工具(instrument診斷、調試);
5、自動化測試:單元測試