title: Not declaring a property as optional results in "property not initialized at super.init()" error
body: <p>I have written the following code for a protocol. I pass the the reference to the delegate variable and use it to call interface/protocol functions. However, if I put <code>?</code> for declaring the Protocol object, no error is generated. If I don't, it gives me an error</p>
  
  <blockquote>
    <p>property self.delegate is not intialized at super.init().</p>
  </blockquote>
  
  <p>Why is that?</p>
  
  <pre><code>protocol DownloadDataInterface
  {
      func downloadCompleted(data : NSDictionary);
  }
  
  class DownloadData: NSObject, NSURLConnectionDelegate, NSURLConnectionDataDelegate {
  
      var data : NSMutableData!;
  
      var delegate : DownloadDataInterface;
  
  
      init(keywords: String!)
      {
          super.init();
  </code></pre>