虎牙最新 iOS 面试真题总结(含 ARC、RunLoop、多线程、网络等)

本文汇总了虎牙 iOS 面试中遇到的最新真题,涵盖项目架构、内存管理、锁机制、网络协议、多线程、视频技术等多个核心模块,适合准备大厂 iOS 岗位的同学参考学习。


面试说明

由于时间有限,本文主要记录真题与核心知识点,未提供全部详细答案。欢迎交流和补充。


一面题目(项目架构+底层原理+锁)

  1. 项目架构是自己设计的吗?请介绍一下

  2. FPS(帧率)是怎么计算的?

  3. 除了 CADisplayLink,还有哪些计算 FPS 的方法?

  4. KVO(键值观察)是如何实现的?

  5. Leaks 是怎么实现的?

  6. 如何通过代码监听僵尸对象?

  7. imageWithName 方法什么时候发生图片解码?在哪个线程?

  8. isa 指针里面包含哪些信息?

  9. Objective-C 消息发送和消息转发的流程?

  10. 函数的参数是如何存储的?

  11. OC 空函数里面有参数吗?

  12. 参数存储在栈还是寄存器?

  13. 红黑树查找的时间复杂度?

  14. NSDictionary 是如何实现的?

  15. iOS 中常见的锁有哪些?

  16. 如何实现 dispatch_once?需要考虑哪些问题?

  17. 同一线程里连续使用两个 @synchronized,是递归锁还是非递归锁?

  18. 如何增加按钮的点击范围?


二面题目(内存管理+消息机制+网络协议)

  1. ARC(自动引用计数)原理介绍

  2. autoreleasepool 的作用及使用场景

  3. autoreleasepool 中的对象什么时候释放?

  4. 消息转发可以用来做什么?

  5. RunLoop 是什么?你用 RunLoop 做过什么?

  6. C++ 多态和虚函数表机制

  7. TCP 如何保证数据传输的完整性?

  8. TCP 为什么需要三次握手?

  9. HTTP 和 HTTPS 全程都是非对称加密吗?

  10. 面对乱序数据,你如何设计排序方案?

  11. 对 RxSwift 的看法,实际项目中用过吗?


三面题目(对象内存+网络+多线程+视频)

  1. iOS 对象指针大小是多少?

  2. 对象分配是在堆还是栈?

  3. HTTP 请求如何区分 Header 和 Body?

  4. 多线程能否同时访问同一个对象?多进程呢?

  5. 视频中的 PTS 和 DTS 是什么?

  6. 视频丢帧时,是丢 PTS 好还是丢 DTS 好?

  7. iOS 各种锁的性能如何?锁的粒度是毫秒还是微秒级别?

  8. HTTP 请求是异步还是同步?

  9. 你怎么看待 React Native 和 Flutter?


核心知识点总结

主题 关键内容
项目架构 MVC/MVVM、模块化设计、性能优化
FPS计算 CADisplayLink、Core Animation
KVO实现 isa-swizzling、消息转发
内存管理 ARC、自动释放池、引用计数
锁机制 OSSpinLock、NSLock、pthread_mutex
RunLoop 事件监听、模式切换、定时器管理
网络协议 HTTP/HTTPS、TCP三次握手、数据完整性
多线程 GCD、NSOperation、线程安全
视频技术 PTS/DTS、丢帧策略
跨平台框架 React Native 与 Flutter 对比

参考建议

  • 重点掌握底层原理,尤其是内存管理与锁机制
  • 熟悉网络通信协议及传输安全机制
  • 理解多线程同步与死锁问题
  • 视频相关基础理论及实践经验
  • 对跨平台方案有基本认知和评价能力

欢迎大家点赞收藏,有任何问题或经验分享,欢迎留言交流!
祝你面试顺利,早日拿下心仪的 iOS 岗位!

虎牙最新 iOS 面试真题总结(含 ARC、RunLoop、多线程、网络等)

https://despacito2.github.io/posts/7c0066a7/

作者

人间正道

发布于

2024-03-02

更新于

2025-07-08

许可协议

评论