title: In swift I cant initialize things before the super.init() or after
body: <p>I want to be able to initialize the property subviewGroup using self but this gives me the error: Property 'self.gridView' not initialized at super.init call</p>
  
  <pre><code>init(frame: NSRect) {
      super.init(frame: frame)
      subviewGroup = GridViewGroup(rows: 9, columns: 9, gridView: self)
  }
  
  /***  Properties  ***/
  let subviewGroup: GridViewGroup
  </code></pre>
  
  <p>Then if I put the super.init() after the initialization like this</p>
  
  <pre><code>init(frame: NSRect) {
      subviewGroup = GridViewGroup(rows: 9, columns: 9, gridView: self)
      super.init(frame: frame)
  }
  
  /***  Properties  ***/
  let subviewGroup: GridViewGroup
  </code></pre>
  
  <p>I get the error: 'self' used before super.init call</p>
  
  <p>I know I can use an Optional but since it will never be nil after the init() call it seems unnecessary.  Is there a way to do this properly without making subviewGroup an optional?</p>
  
  <p>Here is a working example using an optional</p>
  
  <pre><code>/***  Initializers  ***/
  init(frame: NSRect) {
      super.init(frame: frame)
      subviewGroup = GridViewGroup(rows: 9, columns: 9, gridView: self)
  }
  
  /***  Properties  ***/
  let subviewGroup: GridViewGroup?
  </code></pre>