深入理解 Swift 中闭包的捕捉语义(一)
本文讲的是深入理解 Swift 中闭包的捕捉语义(一), 即使是有ARC的今天,理解内存管理和对象的生命周期仍旧是非常重要的。当使用闭包的时候是一个特例,它在Swift中出现的场景越来越多,比起Objective的代码块的捕获规则有很多不同的捕获语法。让我们看看它们是如果工作的吧。 概述 在Swift中,闭包捕获了他们引用到的变量: 默认情况下,在闭包外申明的变量会被使用这些变量的闭包在内部保留,为了确保他们在闭包被执行的时候仍旧存在。 对于这篇文章的来说,让我们定义一个简单的Pokemon类,举个例子: class Pokemon: CustomDebugStringConvertible { let name: String init(name: String) { self.name = name