iOS技术面试很可能问到的问题整理
前言
新年新气象,又到了一年一度金三银四跳槽的黄金时期,很多骚年们又要跳槽换好工作了,最近笔者也在考虑换工作,在复现过程中整理了如下所列的iOS技术面试很可能问到需要准备的问题以抛砖引玉。
1.OC内存管理机制(MRC与ARC本质与区别)
2.MVC与MVVM设计模式的本质与区别
3.Delegate与Protocol,Observer(Notification、KVC/KVO)三者的本质与区别
4.AFN与ASI的使用以及二者区别以及内部核心方法的封装实现细节考察
5.SDWebImage原理及缓存机制实现细节考察(据反映最近有公司会增加对YYKit,YYCache等YY系列源码解析的考察)
6.对常用控件的使用(自定义UITableView或UICollectionView控件)及Controller进行定制以及复杂的UI搭建(复杂页面cell的高度计算与UITextView相关的图文混排处理等涉及性能优化和提升软件界面流畅度,自动布局等技术细节)
7.移动开发中的数据存储管理:本地化NSUserDefault、轻量级数据库SQLite、序列化Plist、归档NSKeyArchiver、单例AppDelegate、代码块Block等数据存储机制灵活运用(使用场景与异同点以及需要注意的使用细节)
8.HTTP、HTTPS,IP(TCP /UDP)协议的使用场景与异同点
9.多线程技术NSThread/GCD/NSOperation的使用场景与异同点
10.MapKit/CoreLocation地图组件,AVFoundation/CoreMedia多媒体组件等常用系统控件的节熟练使用细节与注意事项(自定义控件与主流第三方SDK的熟练使用)
11.第三方登录/单点登录(qq,微信,微博等)、分享(主流第三方分享友盟分享,ShareSDK等社会化SDK的集成与自定义细节处理)、支付(微信,支付宝,网银等)等功能
12.Git/SVN等代码管理工具的熟练使用与日常使用细节考察
13.Cocapods等第三方开源库的管理工具的日常熟练使用情况与细节考察(特别是团队开发与组件化开发过程中:1). 如何把pod搞成静态库?2). 如何搭建私有podspec? 3).如何分模块编译打包,加快编译速度等)
- Swift语言熟练程度考察与 Cocos2d和Cocos2d-X的熟练程度考察
15.数据结构与算法考察(一般是基础算法如 冒泡排序,选择排序,哈希,链表,树等)
16.runtime运行时黑魔法的使用以及debug技能(各种奇淫技巧不做要求)
17.对大前端技术栈提法的思考与自身技术范围掌握情况(含前端+后端,跨平台技术的掌握,对weex和RN的掌握与技术选型,前端组件Vue等优秀前端组件的使用情况等等)
18.代码风格与技术规范考察,日常自学能力考察(通过科学上网获取自主续性学习途径(Stack Overflow,Github,技术Blog等)