17.6 同步练习
- 关于Swift内存管理,下列选项中说明正确的是( )。
A. 采用垃圾回收机制 B. ARC
C. MRC D. GC
请简单介绍Swift的ARC内存管理机制。
判断正误:强引用关系能够保证对象在内存中不被释放。
程序分析题:
class Dog {
var name: String = "未命名"
init(name: String) {
self.name = name
}
}
var reference1: Dog?
var reference2: Dog?
var reference3: Dog?
reference1 = Dog(name: "泰迪") ①
reference2 = reference1 ②
reference3 = reference1 ③
reference1 = nil ④
reference3 = nil ⑤
运行上述程序片段,Dog
对象的引用计数为多少?
请简单介绍强引用循环。
解决强引用循环方法有哪些?( )
A. 弱引用 B. 无主引用 C. 强引用 D. 闭包强引用
判断正误:由于闭包本质上也是引用类型,因此也可能在闭包和上下文捕获变量(或常量)之间出现强引用循环问题。
编程题:编写一个程序体现通过弱引用打破强引用循环示例。
编程题:编写一个程序体现通过无主引用打破强引用循环示例。
编程题:编写一个程序体现解决闭包强引用循环示例。