您的位置:首页 > 职场人生

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

2017-10-13 14:26 387 查看
阿里一面

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 面试题