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、自动化测试:单元测试