在 iOS swift 范围内找不到“弱”

Cod*_*ker 11 closures memory-management ios swift

我试图在 swift 中使用闭包来避免内存泄漏,但 swift 无法识别闭包内的 [weak self]。

  //  class :
    
    class LanguageClass {
        
        var languageClosure : (() -> ())?
        var name : String = ""
        
        init() {
            self.languageClosure = { [weak self]
                print("\(self.name) is the language")
            }
        }
        deinit {
            print("deinitialized")
        }
        
    }
    
   // consumption :

      var swiftLanguage : LanguageClass? = LanguageClass()
      swiftLanguage?.name = "Swift"
      swiftLanguage?.languageClosure?()
      swiftLanguage = nil
Run Code Online (Sandbox Code Playgroud)

闭包和类