title: Swift: Overriding a convenience with a designated initializer
body: <p>The Swift documentation states the following:</p>
  
  <blockquote>
    <p>If the initializer you are overriding is a convenience initializer,
    your override must call another designated initializer from its own
    subclass, as per the rules described above in Initializer Chaining.</p>
  </blockquote>
  
  <p>This means, that when I define an initializer with the same signature as a <code>convenience</code> initializer from the base class, then it must also act as a <code>convenience</code> initializer. I cannot "override" a <code>convenience</code> initializer with a <code>designated</code> initializer. </p>
  
  <p>This seems awkward to me: There might be various cases where a signature, e.g., <code>(String)</code> is only a convenience init for the base class but a designated init for a subclass. In contrast to methods, only because two initializer have the same signature, they do not have to perform a similar task. A signature of <code>(String)</code> could mean something completely different for a subclass.</p>
  
  <ol>
  <li>So, why did they add this restriction?</li>
  <li>How can I circumvent it? I.e., if I do need a non-convenience initializer with the same signature as a convenience initializer in the base class, what should I do? My only guess would be adding an unused dummy parameter only to distinguish between them. But this seems very hacky</li>
  </ol>