title: Why is it not allowed to use self when creating a property using closure?
body: <pre><code>// Design Protocol
  protocol SendDataDelegate {}
  
  // Design Sender/Delegator
  class SendingVC {
      var delegate: SendDataDelegate?
      
      deinit {
          print(&quot;Delegator gone&quot;)
      }
  }
  
  // Design Receiver/Delegate
  class ReceivingVC: SendDataDelegate {
      lazy var sendingVC: SendingVC = { // if i don't use lazy, i am not allowed to use self within the closure.
          let vc = SendingVC()
          vc.delegate = self // here
          return vc
      }()
      
      deinit {
          print(&quot;Delegate gone&quot;)
      }
  }
  </code></pre>
  <p>What is the reason behind this?
  From what i found online: Since the object is not initialised the self is not available, what does that even mean?</p>