Skip to content

404panic/ios-review-notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iOS 面试复习笔记

个人复习资料 - Sr/Staff iOS Engineer 面试准备


📖 目录


基础与系统原理

语言特性

性能优化与工程化


🔥 高频面试题速查

系统原理

  • isa 指针的作用?Runtime 消息转发流程?
  • RunLoop 的应用场景?App 启动优化策略?

UI 渲染

  • UIView 和 CALayer 的区别?
  • 离屏渲染的触发条件?如何优化列表滚动性能?

并发编程

  • 主队列 sync 为什么死锁?
  • barrier 如何实现读写锁?atomic 能保证线程安全吗?

语言特性

  • Block 的类型和循环引用?weak 指针如何自动置 nil?
  • Category 和 Extension 的区别?KVO 的实现原理?

Swift

  • struct 和 class 的区别?Copy-on-Write 是什么?someany 的区别?静态分发 vs 动态分发?
  • async/await 和 GCD 的区别?Actor 如何保证线程安全?Sendable 是什么?

性能优化

  • 如何监控和定位卡顿?启动时间优化?
  • 内存泄漏和 OOM 的区别?包体积优化?

架构设计

  • 如何设计大型项目架构?组件化路由如何实现?
  • 如何保证代码质量?如何搭建监控体系?

💡 面试回答套路

结论先行 → 原理解释 → 实战关联 → 拓展延伸

示例:

:什么是离屏渲染?

  1. 离屏渲染是 GPU 在屏幕缓冲区之外另开缓冲区渲染
  2. 某些效果需要多次渲染才能完成(如圆角裁剪)
  3. 项目中通过 shadowPath、预渲染圆角图片等方式避免
  4. iOS 9 后单独 cornerRadius 不触发,但配合 masksToBounds 会触发

📝 笔记

  • 每章都有完整的代码示例
  • 重点内容有源码级解析
  • 高频问题有标准答案
  • 技术方案有对比表格

Releases

No releases published

Packages

 
 
 

Contributors