title: What's the difference between a protocol extended from AnyObject and a class-only protocol?
body: <p>Both this declaration</p>
  
  <pre><code>protocol SomeProtocol : AnyObject {
  }
  </code></pre>
  
  <p>and this declaration</p>
  
  <pre><code>protocol SomeProtocol : class {
  }
  </code></pre>
  
  <p>seem to make it so that only classes can conform to this protocol (i.e. that the instances of the protocol are references to objects), and have no other effects.</p>
  
  <p>Is there any difference between them? Should one be preferred over the other? If not, why is there two ways to do the same thing?</p>
  
  <p>I am using the latest released Xcode 6.3.1.</p>