IOS面试题——Swift内存管理(9)
一 面试题汇总
- swift 中内存管理方案?ARC引用类型有几种?strong、weak、unowned
- Swift闭包循环引用如何产生,怎么解决?
- 能否在定义闭包属性的同时引用self?lazy
- 如果lazy属性是闭包调用的结果,是否需要考虑循环引用问题?
- 什么是逃逸闭包?逃逸闭包能否捕获inout参数?@escaping
- Swift中指针类型有哪几种?
二 面试题解答(仅供参考)
2.1 swift 中内存管理方案?ARC引用类型有几种?strong、weak、unowned
1 | 在 Swift 中,内存管理是通过 ARC 来进行的,主要分为以下几种引用类型: |
2.2 Swift闭包循环引用如何产生,怎么解决?
1 | 闭包循环引用发生在闭包捕获了 self,同时 self 又持有对闭包的引用,形成强引用循环。 |
2.3 能否在定义闭包属性的同时引用self?lazy
1 | 1.lazy 关键字允许闭包在第一次使用时初始化,这样可以避免在初始化对象时就捕获 self。 |
2.4 如果lazy属性是闭包调用的结果,是否需要考虑循环引用问题?
1 | 即使是 懒加载闭包属性,如果闭包捕获了self,并且self又持有对闭包的引用,依然会引发闭包循环引用。 |
2.5 什么是逃逸闭包?逃逸闭包能否捕获inout参数?@escaping
1 | 1.逃逸闭包是指在函数返回后才执行的闭包,通常用于异步任务、回调等场景。 |
2.6 Swift中指针类型有哪几种?
1 | Swift 中的指针类型主要有: |
三 参考
- 简书—Swift内存管理