注意:更新内容会同步到GitHub iOSWiki-知识体系总结
总结-内存相关
iOS知识点/内存相关 #iOS体系总结
重点掌握
基础相关
Swift内存相关基础
iOS内存布局结构?
堆区和栈区的区别?为什么要设计堆和栈,主要解决哪些问题?
Swift对象堆空间申请过程?
Swift里let和var变量的内存布局有何不同?
内存布局为什么要内存对齐?对齐的规则?
你对iOS内存管理的理解?
引用计数的存储方式?
ARC在编译器和运行时分别做了哪些工作?
::retain、release的实现机制?::
内存布局
结构体的内存布局
Swift中结构体的内存布局?
Swift类内存布局
Swift中类的内存布局?有哪些数据结构?关系是怎样的?Swift和OC类对象内存布局的区别?
Swift枚举的内存布局
Swift中枚举的内存布局?规则是什么?
Swift中枚举中带关联值的布局是怎样的?不带又是怎样的?
Swift中枚举中带原始值的布局是怎样的?不带又是怎样的?
Swift协议的内存布局
Swift中的协议的内存布局? 协议的属性存储在什么地方?VWT是什么?PWT又是什么?
循环引用
循环引用相关
你对循环引用的理解?强引用和弱引用的区别?
weak和unowned有什么区别?在什么场景下使用weak?什么场景下使用unowned?
weak指针实现原理?为什么对象销毁后会被置为nil?在SideTable里的存取过程又是怎样的?SideTable的组成?为什么有多张SideTable?SideTable为什么会有一把自旋锁?
说说循环引用的场景和解决思路?闭包为什么会产生循环引用?手写循环引用例子?
自动释放池
自动释放池
什么是自动释放池?自动释放池的管理原理是怎样的?
autoreleasePool和Runloop的关系(了解)?
写时复制
Swift写时复制
什么是Swift写时复制?如何为结构体手动实现写时复制?
Swift对象的深度复制(使用Codable协议)