title: Initializers in protocols in Swift must be designated. Why is that so?
body: <p>If you try to create a <code>protocol</code> in Swift that includes a <code>convenience initialiser</code>, you will be immediately scolded by the compiler:</p>
  
  <pre><code>protocol Zizo{
      convenience init(a:String, b:Int)
  }
  </code></pre>
  
  <blockquote>
    <p>Convenience initializer not allowed in non class type.</p>
  </blockquote>
  
  <p>Is there any reason for this limitation? It just doesn't make sense to me. </p>
  
  <p>What could possibly go wrong?</p>