Closure Capture Lists and [weak self]
Using capture lists to prevent closures from strongly capturing objects.
Welcome
Closures capture variables from their surrounding scope. Capture lists (`[weak self]`, `[unowned self]`, `[value]`) control exactly how those captures are made.
Default Strong Capture
```swift
var name = "Alice"
let greet = { print("Hello, \(name)") }
name = "Bob"
greet() // "Hello, Bob" — closure sees current value
```
By default, closures capture *references* to variables.
All lessons in this course
- How ARC Counts References
- Retain Cycles: Causes and Detection
- weak and unowned References
- Closure Capture Lists and [weak self]