title: 'self' captured by a closure before all members were initialized
body: <p>Alright, so just to start off, heres my code: </p>
  
  <pre><code>import UIKit
  import ForecastIO
  
  class Weather {
      var temp: Float
      var condition: String
      var wind: Float
      var precip: Float
  
      init() {
          DarkSkyClient(apiKey: "&lt;api key&gt;").getForecast(latitude: Utils().getLat(), longitude: Utils().getLong()) { result in
  
              switch result {
              case .success(let currentForecast, _):
  
                  self.temp = (currentForecast.currently?.temperature)!
                  self.condition = (currentForecast.currently?.summary)!
                  self.wind = (currentForecast.currently?.windSpeed)!
                  self.precip = (currentForecast.currently?.precipitationProbability)!
  
              case .failure(let error):
                  print(error)
  
              }
  
          }
  
      }
  
  }
  </code></pre>
  
  <p>So my error comes up because I'm trying to initialize temp inside of the API call. I know this isn't the most reliable way of doing it but I'm trying to first get it to work.</p>
  
  <p>The first error is:</p>
  
  <blockquote>
    <p>'self' captured by a closure before all members were initialized</p>
  </blockquote>
  
  <p>on the line <code>DarkSkyClient(apiKey: "").getForecast(latitude: Utils().getLat(), longitude: Utils().getLong()) { result in</code></p>
  
  <p>My second error:</p>
  
  <blockquote>
    <p>Return from initializer without initializing all stored properties</p>
  </blockquote>
  
  <p>on the second to last <code>}</code></p>
  
  <p>Now, obviously I'm not initializing right. I can't find the proper way to do what my end goal is though. Maybe I'm doing this entirely wrong?</p>