17.6 同步练习

  1. 关于Swift内存管理,下列选项中说明正确的是(  )。

A. 采用垃圾回收机制     B. ARC

C. MRC            D. GC

  1. 请简单介绍Swift的ARC内存管理机制。

  2. 判断正误:强引用关系能够保证对象在内存中不被释放。

  3. 程序分析题:

  1. class Dog {
  2. var name: String = "未命名"
  3. init(name: String) {
  4. self.name = name
  5. }
  6. }
  7. var reference1: Dog?
  8. var reference2: Dog?
  9. var reference3: Dog?
  10. reference1 = Dog(name: "泰迪")
  11. reference2 = reference1
  12. reference3 = reference1
  13. reference1 = nil
  14. reference3 = nil

运行上述程序片段,Dog对象的引用计数为多少?

  1. 请简单介绍强引用循环。

  2. 解决强引用循环方法有哪些?(  )

A. 弱引用   B. 无主引用   C. 强引用   D. 闭包强引用

  1. 判断正误:由于闭包本质上也是引用类型,因此也可能在闭包和上下文捕获变量(或常量)之间出现强引用循环问题。

  2. 编程题:编写一个程序体现通过弱引用打破强引用循环示例。

  3. 编程题:编写一个程序体现通过无主引用打破强引用循环示例。

  4. 编程题:编写一个程序体现解决闭包强引用循环示例。