title: Swift cannot assign to self in a class init method
body: <p>I have a class called <code>Letter</code></p>
  <pre><code>class Letter
  {    
      init() {}
  }
  </code></pre>
  <p>And I have an extension for this class:</p>
  <pre><code>extension Letter
  {
      convenience init(file_path:String) {
         self = Letter.loadFromFile(file_path)
      }
  
      class func loadFromFile(file_path:String)-&gt;Letter {...}
  }
  </code></pre>
  <p>I need to create and init with path to file and when i call <code>Letter(file_path)</code> I need a new object that returned by a func <code>loadFromFile</code>. How to assign in an init method or to return a new object?</p>
  <p>It gives the error:</p>
  <blockquote>
  <p>Cannot assign to value: 'self' is immutable</p>
  </blockquote>