##序言
以下iOS面试题仅供参考,毕竟面试是不可控的,但懂得越多,自然机会越大!
####字节一面内容:
1、 自我介绍
2、 介绍一下简历中的一个项目
3、 面向对象的三个要素
4、 多态?
5、 Java,python,OC运行效率孰高?
6、 Property,其中copy如何?
7、 Property(nonatomatic, copy) NSMutableArray有什么问题
8、 Copy和MutableCopy的区别
9、 解释下类别,原理
10、解释下封装,重载;
11、 OC存在多重继承吗?
12、了解表视图吗,解释一下复用原理
13、说明一下表视图的滑动卡顿的优化方法
14、viewDidLoad和viewDidAppear的调用时机(一次和多次的区别);
15、页面间的传值方式有哪些(公有属性,公有方法和协议,block传值,通知,extern全局变量传值,NSUserDefault简单数据存储传值);
16、通知和delegate的区别?
17、 通知的发送和接收是否在同一线程?
18、HTTP和HTTPS区别?
19、OC中多线程一般有几个方案?
20、了解NSURLConnection和Session吗?
21、说一下NSURLSession具体的实现原理
22、http的头部的几个码。;
23、编程题:实现一个二叉树的倒置。
####字节二面内容:
1、老虎吃羊问题。(博弈论,老虎要吃羊,假设所有老虎是理智的,即首先为了生存,其次为了饱腹,老虎吃了羊后会变成羊,同样会被其他老虎吃掉。现在,N只老虎和1只羊,请问N为多少时,老虎们会吃羊。动态规划问题,奇数吃,偶数不吃。)
2、青蛙跳格子,斐波拉契数列;青蛙跳格子,斐波拉契数列;
3、熟悉使用什么框架?
4、如果让你自己实现SDWebImage的二级存储机制,你如果实现?
5、@autorelease{ NSString s;}和NSString s;有什么区别?
6、说一下你对autorelease的理解。
7、说一下对于http的理解?
8、http的返回状态码有了解吗?
9、为什么说http是无状态的?
10、为什么不用原生的APNS技术实现呢?
11、了解GCD吗?
12、说一下dispatch_group_t和dispatch_barrier_sync的区别吗?
13、了解NSOperation吗?
14、了解NSOperationQueue吗?
####字节三面内容:
1、 算法题:求只有三项元素的数组中的顺序排列,时间复杂度要求O(n);
2、 说一下你对OC程序编译和连接方面的理解?
3、 说一下内存管理相关的操作?
4、 说一下响应链的原理?
5、 追问:hitTest有尝试过重写吗?
6、 http, session和cookie有了解过吗;
7、 线程和队列的关系?
8、 CALayer和UIView了解吗?
###### 精选全网 · iOS面试题答案PDF文集
> 最新 初级iOS 面试题
> 最新 中级iOS 面试题
> 最新 高级iOS 面试题
> 《BAT面试资料全集》
> 《BAT大厂常问iOS面试题》
> 《2021年面试真题》
> 《iOS开发面试题200道-面试问答篇》
> 《iOS开发笔试题600道-笔试手写篇》
> 《iOS中级到高级面试题完整版》
![image](https://upload-images.jianshu.io/upload_images/18671920-488f6659d2be275e.png?imageMogr2/auto-orient/strip|imageView2/2/w/867/format/webp)
资料下载地址:
> 获取地址:[https://docs.qq.com/doc/DVU5LY1Bsb3dSZ3Nn](https://links.jianshu.com/go?to=https%3A%2F%2Fdocs.qq.com%2Fdoc%2FDVU5LY1Bsb3dSZ3Nn)