iOS面试题汇总-看看你能答多少

阿里一面
1.MVC具有什么样的优势,各个模块之间怎么通信,比如点击Button后,怎么通知Model?
2.两个无限长度链表(也就是可能有环)判断有没有交点。
3.UItableView的相关优化
4.KVO、Notification、delegate各自的优缺点,效率还有使用场景
5.如何手动通知KVO
6.Objective-C中的copy方法
7.runtime中,SEL和IMP的区别
8.autoreleasepool的使用场景和原理
9.RunLoop的实现原理和数据结构,什么时候用到
10.Block为什么会有循环引用问题
11.使用GCD如何实现这个需求:A、B、C、三个任务并发,完成后执行任务D。
12.NSOperation和GCD区别
13.CoreData的使用,如何处理多线程问题
14.如何设计图片缓存
15.有没有自己设计过控件
阿里二面
1.怎么判断某个cell是否显示在屏幕上
2.进程和线程的区别
3.TCP和UDP的区别
4.TCP流量控制
5.数组和链表的区别
6.UIView的生命周期
7.如果页面A跳转到页面B,A的viewDidDisappear方法和B的ViewDidAppear方法哪个先调用。
8.block循环引用问题
9.ARC的本质
10.RunLoop的基本概念,他是怎么休眠的?
11.Autoreleasepool什么时候释放,在什么场景下使用?
12.如何找到字符串中第一个不重复的字符
13.哈希表如何处理冲突
阿里三面
1.dSYM你是如何分析的?
2.多线程有哪几种?你更倾向于哪一种?
3.单例弊端?
4.如何把异步线程转换成同步任务进行单元测试?
5.介绍下App启动的完成过程?
6.比如App启动过慢,你可能想到的因素有哪些?
7.0x8badf00d表示是什么?
8.怎么防止反编译?
9.说说你遇到到的技术难点?
10.说说你了解的第三方原理或底层知识?

1.介绍下内存的几大区域?
2.你是如何组件化解耦的?
3.runtime如何通过selector找到对应的IMP地址
4.runloop内部实现逻辑?
5.你理解的多线程?
6.GCD执行原理?
7.怎么防止别人反编译你的app?
8.YYAsyncLayer如何异步绘制?
9.优化你是从哪几方面着手?

网易一面iOS:
1.你一般学习iOS是如何学习的?
2.app内存你是如何分析的?
3.用过 TableView 吗,平时怎么解决 TableView 滑动卡顿问题的?
4.网络模型了解么?有哪几种?说说你的看法?
5.block本质是什么?
6.KVC机制是如何通过key找到value。
7.说说你最熟悉的第三方,知晓其原理么?

你可能感兴趣的:(iOS)