Avatar ·

在 Swift 的闭包中是否总是需要使用 [unowned self]?

大家好!我开始学习 Swift,遇到了闭包中内存管理的问题。我读了很多 Stack Overflow 上的文章,到处都说需要使用 `[weak self]` 或 `[unowned self]` 来避免 retain cycles。但我搞不清楚什么时候该用 `unowned`。 下面是一个例子:我有一个 `NetworkManager` 类,它加载数据并在完成后调用闭包。 ```swift class NetworkManager { func fetchData(completion: @escaping (Data?) -> Void) { DispatchQueue.global().async { // 模拟加载 sleep(2) let data = Data() completion(data) } } } class ViewController: UIViewController { let networkManager = NetworkManager() func loadData() { networkManager.fetchData { data in // 处理数据 self.updateUI(with: data) } } func updateUI(with data: Data?) { // 更新界面 } }