How to require that a protocol can only be adopted by a specific class
<p>I want this protocol:</p>

<pre><code>protocol AddsMoreCommands {
     /* ... */
}
</code></pre>

<p>only to be adopted by classes that inherit from the class <code>UIViewController</code>. <a href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols.html#//apple_ref/doc/uid/TP40014097-CH25-ID267">This page</a> tells me I can specify that it is only adopted by a class (as opposed to a struct) by writing</p>

<pre><code>protocol AddsMoreCommands: class {
}
</code></pre>

<p>but I cannot see how to require that it is only adopted by a particular class. <a href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols.html#//apple_ref/doc/uid/TP40014097-CH25-ID267">That page later</a> talks about adding <code>where</code> clauses to protocol extensions to check conformance but I cannot see how to adapt that either.</p>

<pre><code>extension AddsMoreCommands where /* what */ {
}
</code></pre>

<p>Is there a way to do this?
Thanks!</p>